2010-10-05 51 views
8

我是Android開發人員的初學者。 任何1請指導我如何調用其他包中保存的類的方法。如何調用其他包中保存的類的方法

與包1中的類A一樣,它調用包2的B類中的方法,該包返回一個數組或對象。

我必須爲此創建一個意圖嗎?實際上,我必須從不同包裝中的不同類別收集1班的所有信息。

在此先感謝。

package com.xyz.Master; 


import android.app.Activity; 
import android.content.Context; 
import android.os.Build; 
import android.telephony.CellLocation; 
import android.telephony.TelephonyManager; 
import android.telephony.gsm.GsmCellLocation; 

public class PhoneInfo extends Activity { 

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
GsmCellLocation location = (GsmCellLocation) tm.getCellLocation(); 
public int cellID, lac,mcc,mnc; 
public String imei,manufacturer,model,product; 
String[] phoneInfo; 
int[] phoneLocationInfo;  

public String[] getHandsetInfo() 
{ 
    manufacturer = Build.MANUFACTURER; 
    model = Build.MODEL; 
    product = Build.PRODUCT; 
    imei=tm.getDeviceId();   

    String softwareVersion = tm.getDeviceSoftwareVersion(); 

    phoneInfo = new String[5]; 
    phoneInfo[0]=imei; 
    phoneInfo[1]=product; 
    phoneInfo[2]=model; 
    phoneInfo[3]=manufacturer; 
    phoneInfo[4]=softwareVersion; 
    return phoneInfo; 

} 
public int[] getHandsetLocationInfo() 
{ 
    phoneLocationInfo= new int[4]; 
    String networkOperator = tm.getNetworkOperator(); 
    if (networkOperator != null) { 
      mcc = Integer.parseInt(networkOperator.substring(0, 3)); 
      mnc = Integer.parseInt(networkOperator.substring(3)); 
     } 
    CellLocation.requestLocationUpdate(); 
    cellID = location.getCid(); 
    lac = location.getLac(); 

    phoneLocationInfo[0]=cellID; 
    phoneLocationInfo[1]=lac; 
    phoneLocationInfo[2]=mcc; 
    phoneLocationInfo[3]=mnc; 

    return phoneLocationInfo; 

} 
} 

我想調用上面的方法從其他類中獲取這些數組。 如何做到這一點,上述代碼中是否有任何錯誤?

+0

請定義'Package' - 是否想到Java'package'或其他東西? – 2010-10-05 07:51:31

+0

是靜態的方法嗎?如果是這樣,你可以使用'import static'語句在B類中使用它(假設Android JVM支持這一點) – 2010-10-05 07:56:29

回答

6

只需導入其他包並實例化類B並調用該函數。

package Package1; 
import Package2; 
Class A { 
    void callClassBFunction(){ 
     B = new B(); 
     b.callFunction(); 
} 
package Package2; 
public class B { //class B should be public 
    Object callFunction(){ 
     //do something and return object 
    } 
} 
+0

其真正的迫切..做盡快答覆..在此先感謝 – Ankit 2010-10-05 13:00:25

16

假設,我們談論了Java package,那麼我們就調用在其他包中的類方法中的一些規則。爲了簡單起見,這個工程:

package my.namespace.app; 
import com.example.one.ArrayProvider;  // import the other class 

public class MyClass { 

    public static void main(String[] args) { 

    // to access the static method 
    Object result1 = ArrayProvider.getObject(); 

    // to access "the other" method 
    ArrayProvider provider = new ArrayProvider(); 
    String[] result2 = provider.getArray(); 
    } 
} 

進一步閱讀

  • package com.example.one; 
    public class ArrayProvider { 
        public String[] getArray() { 
        return new String{"I'm ","inside ", "an ", "array "}; 
        } 
        public static Object getObject() { 
        return new String{"I'm ","inside ", "an ", "array "}; 
        } 
    } 
    

    現在你的代碼從其他包訪問ArrayProvider類的方法The Java Tutorial(您的問題針對的是基本的Java知識)

相關問題