5

私は、無効になっている間は黒いテキストと背景を持ち、有効になっているときは白い書き込みのある緑の背景にしたいボタンを持つAndroidアプリケーションを持っています。

有効化と無効化は機能していますが、色を変更すると、ボタンの状態に関係なく同じままです。

カスタムセレクターを使用して色を手動で設定する必要があることを読みましたが、これは私がこれまでに得たものです:

continuebutton.xml in res/drawable:(green は /res/values/colors.xml で宣言されています)

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item 
android:state_enabled="false"
    android.textColor ="@android:color/black"
    android:drawable="@android:color/black" />
<item 
    android:state_enabled="true"
    android.textColor ="@android:color/white"
    android:drawable="@color/green" />

レイアウト xml ファイルの continuebutton:

 android:id="@+id/continueButton"
   android:layout_width="200dp"
    android:layout_height="55dp"  android:layout_gravity="center" android:paddingTop="10dp" android:textSize="18dp" 
    android:text="@string/continueButton" android:background="@drawable/continuebutton" />

continuebutton.xml ファイルで何か間違ったことをしていると思いますが、修正方法がわかりません。

どんな助けでも大歓迎です!

ありがとう

アップデート:

背景の色が変化しています。最後の問題は、ボタンが無効になっているか有効になっているかに関係なく、テキストの色が黒のままであることです(有効にする場合は白にする必要があります)。

テキストの色について、res/drawable に新しい xml ファイルを作成する必要がありますか?

何か案は?

4

2 に答える 2

1

属性を削除します

android:src="@drawable/continuebutton"

と使用

android:background="@drawable/continuebutton"

実行時に背景画像を変更できます

myButton.setBackgroundDrawable(getApplicationContext().getResources().getDrawable(R.drawable.myfirstbg));
myButton.setBackgroundDrawable(getApplicationContext().getResources().getDrawable(R.drawable.mysecondbg));

背景色を使用したい場合は、両方のプロパティを削除してください`

android:src="@drawable/continuebutton"
android:background="@drawable/continuebutton"

これを使用して背景色を変更します

myButton.setBackgroundColor(Color.BLUE);
myButton.setBackgroundColor(Color.GREEN);
于 2012-04-06T12:05:55.057 に答える
1

res/colorファイルをフォルダーに追加する必要があります。

利用可能な「状態」値がいくつかあります。有効/無効については、 を参照してくださいandroid:state_enabled

mybutton_color.xml ファイル

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#fff"/> <!-- pressed -->
    <item android:state_focused="true" android:color="#fff"/> <!-- focused -->
    <item android:state_enabled="false" android:color="#000"/> <!-- disabled -->
    <item android:color="#fff"/> <!-- default -->
</selector>

あなたの見解ではandroid:textColor

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/button_text"
    android:textColor="@color/mybutton_color" />

ここで述べたように:https://developer.android.com/guide/topics/resources/color-list-resource

于 2020-12-11T10:17:59.817 に答える