2010-10-05 18 views
8

Tôi là người mới bắt đầu trong Android Đang phát triển. Có thể any1 xin vui lòng hướng dẫn tôi cách gọi một Phương thức của một lớp được lưu giữ theo gói khác.cách gọi Phương thức của một lớp được lưu giữ theo gói khác

Giống như lớp A trong Gói 1 gọi phương thức trong Lớp B của Gói 2 trả về Một mảng hoặc đối tượng.

Tôi có phải tạo Mục đích cho điều đó không ?? thực sự tôi phải thu thập tất cả các thông tin trong 1 lớp từ các lớp khác nhau được lưu giữ theo các gói khác nhau.

Xin cảm ơn trước.

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; 

} 
} 

Tôi muốn gọi các phương thức trên từ lớp khác và nhận các mảng này. Làm thế nào để làm điều đó, có bất kỳ lỗi nào trong mã trên không ??

+0

Vui lòng xác định 'Gói' - hãy nghĩ về gói 'Java' hay cái gì khác? –

+0

là phương pháp tĩnh? nếu có, bạn có thể sử dụng câu lệnh 'import static' để sử dụng nó trong lớp B (giả sử JVM của Android hỗ trợ điều này) –

Trả lời

6

Chỉ cần nhập gói khác và khởi tạo lớp B và gọi hàm.

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

thực sự khẩn cấp .. trả lời asap .. cảm ơn trước – Ankit

16

Giả sử, chúng tôi đang nói về Java package, sau đó chúng tôi có một số quy tắc để gọi phương thức trên lớp trong các gói khác. Để giữ cho nó đơn giản, hoạt động này:

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 "}; 
    } 
} 

Bây giờ mã của bạn để truy cập vào các phương pháp của lớp ArrayProvider từ gói khác:

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(); 
    } 
} 

liệu đọc thêm

  • The Java Tutorial (Câu hỏi của bạn nhắm vào kiến ​​thức cơ bản về Java)
Các vấn đề liên quan