2010-10-05 59 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知识)

相关问题