0

Я динамически создаю кнопку в linelayout horizontalscrollview, и по щелчку я получаю выбранную позицию кнопки. И я изменил цвет текста кнопки. Но моя проблема заключается в том, как я могу окунуться в другой цвет текста кнопок.Сброс настроек цвета динамически созданных кнопок Android

Например, у меня есть 6 или 7 кнопок в линейном режиме горизонтального обзора, когда я нажал кнопку позиции 1, чтобы изменить цвет текста, но когда я нажал на кнопку позиции 2, чтобы я хотел сбросить позицию 1 или все цвета текста кнопок. Как мне это сделать?

Вот мой код.

String[] categories = {"SUN","MON", "TUS", "WED", "THU", "FRI", "SAT"}; 
private LinearLayout ll; 
Button btn; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ll = (LinearLayout) findViewById(R.id.hsvLinearLayout); 

    for(int i = 0; i < categories.length; i++) { 
     btn = new Button(this); 
     btn.setText(categories[i]); 
     btn.setBackgroundColor(Color.parseColor("#ffffff")); 
     btn.setOnClickListener(buttonClick); 
     ll.addView(btn); 
     int idx = ll.indexOfChild(btn); 
     btn.setTag(Integer.toString(idx)); 
    } 
} 

OnClickListener buttonClick = new OnClickListener() { 
    public void onClick(View v) { 
     String idxStr = Integer.toString(ll.indexOfChild(v)); 

     if(v instanceof Button){ 
      ((Button)v).setTextColor(Color.parseColor("#00aeef")); 
     } 

     Toast.makeText(MainActivity.this, idxStr, 6000).show(); 
    } 
}; 

ответ

2

Возможно, какая-то итерация через основные макеты ребенка?

for(int i=0; i<ll.getChildCount(); i++){ 
    if(ll.getChildAt(i) instanceOf Button) 
     ((Button)ll.getChildAt(i)). 
      setTextColor(Color.parseColor("#00aeef")); 
} 

вы также не должны Button btn; в вашей деятельности, эта ссылка не используется (и сохраняет только последняя добавленная кнопка)

+0

Большое спасибо за быстрый ответ, его работы :) – user3555472

+0

@ user3555472 Как можно Я снова удаляю цвет с кнопки, которая не выбрана? Я просто хочу сохранить цвет текста кнопки для тех, которые выбраны на мгновение. –