2017-09-16 13 views
0

私はカスタムボタンbをアクティビティに持っています。私はそのボタンの背景に6 xmlファイルを定義しました。今私は6つの値を持つことができるstrストリングに基づいてbの背景としてこれらの6つのxmlファイルの1つを設定したいと思います。例文字列変数の値に基づいてカスタムボタン(xmlファイル)の背景を動的に変更します

str = "A"については

そして、ボタンが背景として最初のxmlファイルを持っている必要があります。

str = "B"ボタンは、2番目のxmlファイルをバックグラウンドとして持つ必要があります。

str = "C"ボタンは、バックグラウンドとして3番目のxmlファイルを持つ必要があります。

など。

私はdrawableフォルダ内のすべてのこれらの6つのXMLファイルを入れてみました、私はb.setBackground(R.drawable.custom_button_1)を使用しているが、それは整数として扱われていない、それはint型の値を期待しているようにエラーを与え、そしてXMLファイルです。\

これを達成するための適切な方法はありますか?

これを達成するには別の方法を提案してください。

答えて

1

SetBackgroundには、あなたが言及したようにdrawableがintでなくてはなりません。 を使用でき

b.setBackground (ContextCompat.getDrawable(context, R.drawable.custom_button_1)); 

または

b.setBackgroundResource(R.drawable.custom_button_1); 
1
String text = b.getText().toString(); 
if (text.equals("A")) { 
b.setBackgroundResource(R.drawable.custom_button_1); 
} 

if (text.equals("B")) { 
b.setBackgroundResource(R.drawable.custom_button_2); 
} 
and so on... 
関連する問題