2013-01-31 129 views
1
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    String test = Util.imei(); 
} 


import android.content.Context; 
import android.telephony.TelephonyManager; 

public class Util{ 
    Context context; 

    public Util(Context context) { 
     this.context = context; 
    } 

    public String imei() { 
     TelephonyManager telephonyManager = (TelephonyManager) context 
       .getSystemService(Context.TELEPHONY_SERVICE); 
     return telephonyManager.getDeviceId(); 
    } 
} 

獲取錯誤「無法對類型爲Util的非靜態方法imei()進行靜態引用」。 如果我行更改爲:無法對類型Util的非靜態方法getIMEI()進行靜態引用Util

public static String imei() { 
    ... 
    static Context context; 

我得到一個錯誤和崩潰的應用程序( 「E/AndroidRuntime(629):產生的原因:顯示java.lang.NullPointerException」)

回答

3

兩種方式來寫它:

非靜態

public class Util { 
    Context context; 

    public Util(Context context) { 
     this.context = context; 
    } 

    public String imei() { 
     TelephonyManager telephonyManager = (TelephonyManager) context 
       .getSystemService(Context.TELEPHONY_SERVICE); 
     return telephonyManager.getDeviceId(); 
    } 
} 

,然後在onCreate方法

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Util u = new Util(this); 
    String test = u.imei(); 
} 

第二靜態

public class Util { 
    public static String imei(Context context) { 
     TelephonyManager telephonyManager = (TelephonyManager) context 
       .getSystemService(Context.TELEPHONY_SERVICE); 
     return telephonyManager.getDeviceId(); 
    } 
} 

,然後在onCreate方法

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    String test = Util.imei(this); 
} 
+0

我假設你在'Activity'中創建'AsyncTask'。然後寫'String test = Util.imei(TheActivity.this);'否則你必須構造'AsyncTask'傳遞'context' – pbaris

0

創建的參考在訪問其方法之前,首先使用Util類。

Util util = new Util(); 
String _imei = util.imei(); 
0

您試圖訪問類中的方法沒有爲它創建一個對象。只有靜態方法我們可以這樣調用。在你的情況下,創建一個對象Util並使用該對象調用imei()

一樣,

Util utilObj = new Util(); 
String imei = utilObj.imei(); 

希望這有助於。

相關問題