2016-03-25 2 views
4

Я просто хочу изменить цвет фона кнопки на значение текста. Например, когда я изменяю текст:Android, как изменить цвет кнопки по тексту

button.setText("YES"); 

Я хочу, чтобы установить цвет фона кнопки на зеленый. и когда я изменяю текст:

button.setText("NO"); 

Я хочу, чтобы установить цвет фона кнопки для красный.

Когда я изменить его в коде Java, как это:

boolean textValueYES = true; 
button.setBackgroundColor(textValueYES ? Color.GREEN : Color.RED); 

Кнопка теряет свои настройки drawable.xml. Есть ли способ добавить эту проверку в drawable xml? Или установить цвет фона по его текстовому значению без потери доступных настроек?

+0

Чтобы установить кнопку в качестве фона рисуем использовать 'button.setBackgroundResource (textValueYES? R.drawable.greendrawable: R.drawable.reddrawable); ' – AKSiddique

+0

создать рисованный файл с красным цветом фона и зеленым цветом фона, например: red_drawable.xml, green_drawable.xml, и использовать button.setBackgroundResource (R.drawable.red_drawable); –

ответ

4

вы можете создать два рисованных xml для красного и зеленого цветов фона и установить это программно.

button.setBackgroundResource(textValueYES ? R.drawable.green : R.drawable.red); 
3

Вы должны сделать, как это просто написать ниже в SetText()

т.е.

button.setText("YES"); 
setBackgroundResource(R.color.green); 

и когда

button.setText("NO"); 
setBackgroundResource(R.color.red); 
1

я сделать, как это в моем Java файл

final Button btn_showtouch = (Button)findViewById(R.id.button); 
    btn_showtouch.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if((btn_showtouch.getText()).equals("YES")) { 
       btn_showtouch.setBackgroundColor(Color.GREEN); 
       btn_showtouch.setText("NO"); 
      }else if(btn_showtouch.getText().equals("NO")) { 
       btn_showtouch.setBackgroundColor(Color.CYAN); 
       btn_showtouch.setText("YES"); 
      } 

     } 
    }); 
} 

и файл XML, как этот

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="YES" 
    android:id="@+id/button" 
    android:layout_below="@+id/textView" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginTop="62dp" /> 

и его работал для меня, я надеюсь, что это поможет вам

 Смежные вопросы

  • Нет связанных вопросов^_^