2012-07-22 89 views
0

在一個類中,我調用另一個類的另一個.java文件中的函數。android-靜態方法問題

這是函數

public void make_a_call(String phonenumber) { 
    Intent phone_call = new Intent(android.content.Intent.ACTION_CALL, Uri.parse("tel:"+phonenumber)); 
    startActivity(phone_call); 
} 

問題是這樣的功能,要求它,因爲startActivity的非靜態的,但是當我打電話從另一類這個功能,它說的是,稱呼它,這個函數需要是靜態的。

我該如何解決這個問題?

謝謝。

回答

2

其他類需要對將用於啓動活動的上下文的引用。一種解決方案是將活動的引用(包含make_a_call的引用)傳遞給另一個類中的代碼。另一種可能性(如果其它類是一個自定義視圖,例如),是因爲它使用getContext()以獲得上下文,然後修改make_a_callstatic只能接受一個上下文作爲參數:

public static void make_a_call(Context context, String phonenumber) { 
    Intent phone_call = new Intent(android.content.Intent.ACTION_CALL, Uri.parse("tel:"+phonenumber)); 
    context.startActivity(phone_call); 
}