2015-09-29 3 views
0

У меня есть группа переключателей, и я хочу, чтобы переключатели переключались через несколько секунд, когда один из них щелкнул. Я попытался отключить radioButtonGroup с помощью setEnable (false) и unclickable с помощью setClickable (false), но ни один из них не работал. Как я могу это достичь?Сделать RadioButtonGroup незаменимым в течение некоторого периода

private boolean isFastMenuItemChange(long time) 
{ 
    long curTime = System.currentTimeMillis(); 
    long timeSpace = curTime - lastClickTime; 
    if (0 < timeSpace && timeSpace < time) { 
     return true; 
    } 
    return false; 
} 

public void onRadioButtonClicked(View view){ 

if(isFastMenuItemChange(2000)) 
{ 
    mBottomRadioGroup.setEnabled(false); 
    mBottomRadioGroup.setClickable(false); 
    mBottomRadioGroup.setFocusable(false); 
    mBottomRadioGroup.setFocusableInTouchMode(false); 
    return; 
} 
    lastClickTime = System.currentTimeMillis(); 
    mBottomRadioGroup.setEnabled(true); 
    mBottomRadioGroup.setClickable(true); 
    mBottomRadioGroup.setFocusable(true); 
    mBottomRadioGroup.setFocusableInTouchMode(true); 

//And so on.. 
} 
+1

Просто отключите RadioGroup. –

+1

Не могли бы вы показать нам код, который вы пробовали? Возможно, вы просто делали небольшую вещь неправильно – Smittey

+0

установить неспособным и непривлекательным для всего детского радио радиогруппы. – xxxzhi

ответ

0
setFocusableInTouchMode(false); 
setFocusable(false); 
setClickable(false); 
+0

Просьба сообщить подробности вашего ответа –

0

я в конечном итоге написание метод для отключения всех элементов в одной RadioButtonGroup один за другим, а затем повторное включение их после желаемой секунд. Я использовал этот метод void для моего метода onRadioButtonClick. Вот мое решение

private void radioButtonDisabler(){ 

for(int i = 0; i < mBottomRadioGroup.getChildCount(); i++){ 
     mBottomRadioGroup.getChildAt(i).setEnabled(false); 
    } 
    final Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      for(int i = 0; i < mBottomRadioGroup.getChildCount(); i++){ 
       mBottomRadioGroup.getChildAt(i).setEnabled(true); 
      } 
     } 
    }, 1000); //Re-enable after each one after desired time. 
} 
Смежные вопросы