0

クリックされたときにボタンの画像を更新しようとしていますが、XML ファイル内で使用している方法では、目的の効果が得られないようです (またはまったく効果がありません)。

XML スニペット:

  <Button
      android:id="@+id/update_button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_below="@+id/update_text"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="90dp"
      android:background="@drawable/btn_update_inactive_hdpi" 
      android:onClick="@drawable/btn_update_active_hdpi"/>
4

3 に答える 3

1

android:onClickメソッドを呼び出します。ドキュメントによると:

android:onClick:

Name of the method in this View's context to invoke when the view is clicked. This name must correspond to a public method that takes exactly one parameter of type View. For instance, if you specify android:onClick="sayHello", you must declare a public void sayHello(View v) method of your context (typically, your Activity).

そのため、ボタンがクリックされたときに Java コードで関数を呼び出し、その関数内でプログラムによってドローアブルを変更してみてください。何かのようなもの:

xml ファイル内:

android:onClick="changeBackground"

コード (この xml ファイルのビューを設定するアクティビティ) で、次の機能を宣言します。

public void changeBackground(){
    Button button = (Button)findViewById(R.id.update_button);
    button .setBackgroundResource(R.drawable.btn_update_active_hdpi); 
}

PS: コードは実行していませんが、私が言おうとしていることを理解していただければ幸いです。それが役立つことを願っています

于 2013-07-25T19:48:02.597 に答える