首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使RadioButtonGroup在一段时间内不可点击

使RadioButtonGroup在一段时间内不可点击
EN

Stack Overflow用户
提问于 2015-09-29 20:20:37
回答 2查看 63关注 0票数 0

我尝试用setEnable(false)和setClickable(false)分别将radioButtonGroup设置为禁用和不可点击,但这两种方法都不起作用。我如何才能做到这一点?

代码语言:javascript
复制
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..
}
EN

回答 2

Stack Overflow用户

发布于 2015-09-29 20:30:18

代码语言:javascript
复制
setFocusableInTouchMode(false);
setFocusable(false);
setClickable(false);
票数 0
EN

Stack Overflow用户

发布于 2015-09-29 21:34:42

我最终编写了一个方法,用于逐个禁用RadioButtonGroup中的所有元素,然后在所需的几秒钟后重新启用它们。我在我的onRadioButtonClick方法上使用了这个空方法。以下是我的解决方案

代码语言:javascript
复制
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.
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32843894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档