Android: кнопки массового включения, которые уже отключены - PullRequest
1 голос
/ 18 октября 2011

Я попытался использовать код, указанный в ссылке ниже, для «массового отключения» кнопок, и он работает отлично.Однако тот же код не работает для массового включения.

Android: кнопки массового включения / выключения

Код для отключения (работает)

TableLayout tl = (TableLayout)findViewById(R.id.table1); // 
ArrayList<View> touchables = tl.getTouchables();
for(View touchable : touchables){
if( touchable instanceof Button && touchable != btnNewWord )
((Button)touchable).setEnabled(false);
}

КОД для включения (не работает)

btnNewWord.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

TableLayout tl = (TableLayout)findViewById(R.id.table1);  
ArrayList<View> touchables = tl.getTouchables();
for(View touchable : touchables){
if( touchable != btnNewWord )
((Button)touchable).setEnabled(true);
}                       

1 Ответ

3 голосов
/ 18 октября 2011

Как только вы отключите кнопки, я думаю, они больше не будут сенсорными.Поэтому вам нужно изменить эту точку в своем коде и использовать что-то еще, чтобы получить все представления.Вы можете сохранить ArrayList, который вы использовали для отключения кнопок, а затем использовать их для повторного включения.

РЕДАКТИРОВАТЬ:

Попробуйте это:

ArrayList<View> touchables //declare globaly

, затем

TableLayout tl = (TableLayout)findViewById(R.id.table1); // 
touchables = tl.getTouchables();
for(View touchable : touchables)
{
    if( touchable instanceof Button && touchable != btnNewWord )
      ((Button)touchable).setEnabled(false);
}

и сейчас

btnNewWord.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

       for(View touchable : touchables)
       {
          if( touchable != btnNewWord )
            ((Button)touchable).setEnabled(true);
       }  
   }
}                     
...