14

私はAndroidとJavaを初めて使用しますが、質問をすることなく、自分自身を学び、stackoverflowに関する質問に対するほとんどの回答を見つけることができました。今まで....

これが、クリックすると色をさまざまな色に変更する色付きのボタンがたくさんあります。

たとえば、次のように定義された多くのボタンがあります。

<Button
   android:id="@+id/button17"
   android:layout_width="0dp"
   android:layout_height="fill_parent"
   android:layout_weight="1"
   android:background="@drawable/orange_button"
   android:gravity="center"
   android:onClick="onClick" />

たとえば、ボタンがクリックされたときに、コードを使用して上記の例を黄色に変更する方法を教えてください。

以下のコードでは、clickedButtonは、背景を変更する必要があるボタンのIDです。

public void onClick(View v) {
    int id=v.getId();
    String clickedButton = getResources().getResourceEntryName(id);

    Change button to Yellow here??

    // Temporary code below to check which button was pressed
    // and convert its number to an integer to eventually access an array

    final TextView tvGameTimer = (TextView) findViewById(R.id.tvGameTimer);
    int buttonNumber = Integer.parseInt(clickedButton.substring(6,8));
    tvGameTimer.setText("" + buttonNumber);

    }

カスタムボタンスタイルを使用してボタンの色を定義しています。

res/drawable/yellow_button.xml
res/drawable/blue_button.xml
res/drawable/red_button.xml
res/drawable/orange_button.xml
res/drawable/green_button.xml

今のところ、ボタンをオレンジから黄色に変更する方法を理解する必要があります。次に、アプリが必要とするときに色を変更するロジックを追加できます。

助けてくれてありがとう。

4

2 に答える 2

27

投稿するonClickメソッドは、背景を変更しようとしているボタンと同じであると思います。このコードを使用してください。

  v.setBackgroundResource(R.drawable.yellow_button);

onClickが同じボタンのメソッドでない場合は、

  findViewById(R.id.button17).setBackgroundResource(R.drawable.yellow_button);
于 2012-10-20T15:38:52.877 に答える
2
Button btn = (Button) findViewById(R.id.button17);
btn.setBackground(this.getResources().getDrawable(R.drawable.yellow_button));

これを試して。

于 2012-10-20T15:38:35.553 に答える