0

あるクラスで、別の .java ファイルにある別のクラスから関数を呼び出します。

これが機能です

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 のために非静的である必要があることですが、この関数を別のクラスから呼び出すと、呼び出すにはこの関数は静的である必要があると表示されます。

どうすればこれを修正できますか?

ありがとう。

4

1 に答える 1

2

他のクラスには、アクティビティを開始するために使用されるコンテキストへの参照が必要です。make_a_call1 つの解決策は、アクティビティ ( を含むアクティビティ) への参照を他のクラスのコードに渡すことです。もう 1 つの可能性 (たとえば、他のクラスがカスタム ビューの場合) はgetContext()、コンテキストを取得するために使用し、コンテキストを引数として受け入れるように変更make_a_callすることです。static

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);
}
于 2012-07-22T22:40:37.773 に答える