1

すべての startActivity にバインドする代わりに onClick 属性を使用して、アクティビティに含まれるメニュー xml があります。

私の質問は、xml onClick attr で定義して、たとえば mainActivity にあるメソッドを呼び出すにはどうすればよいですか?

android:onClick="mainActivity.doSomething" のようなことを考えましたが、うまくいきません。

4

2 に答える 2

5

xml で onclick を使用するのは悪い考えです。実際には、現在のクラスがそれを使用しているメソッドを見つけようとするだけです。あなたが本当にこのようにしたい場合、これを行う1つの方法は次のとおりです。

開始アクティビティ:

public void callOtherMethod(){
   mainActivity.doStuff();
}

主な活動:

public static void doStuff(){
//dosomething.
}

startActivity.xml:

android:onClick="callOtherMethod" 

ターゲット メソッド Activity のインスタンスを取得できない限り、doStuff メソッドも静的である必要があります。

于 2013-02-02T15:41:05.050 に答える
1

android:onClick="mainActivity.doSomething" のようなことを考えましたが、うまくいきません。

通常、Android はonClickxml レイアウトで宣言されたメソッドを、そのレイアウト ファイルが使用されている現在のアクティビティでのみ検索します (そのメソッドを呼び出すと、それらのアクティビティが十分に破棄される可能性があるため、他のアクティビティを調べることは意味がありません)。 )。

私の質問は、xml onClick attr で定義して、たとえば mainActivity にあるメソッドを呼び出すにはどうすればよいですか?

何をしようとしているのかを説明する必要があります。Activity 別のメソッドから のメソッドにアクセスするActivityことは避ける必要があります。これは、Android で適切な方法ではありません。

于 2013-02-02T15:40:15.993 に答える