Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中禁用活动中的所有输入控件?_Android - Fatal编程技术网

如何在android中禁用活动中的所有输入控件?

如何在android中禁用活动中的所有输入控件?,android,Android,我想在点击按钮时禁用所有输入控件(例如:文本编辑、微调器) 当用户在文本字段中输入一个值并单击提交按钮时,我想禁用所有输入控件并隐藏键盘 可以在“活动”顶部添加覆盖视图以防止用户触摸屏幕,但这不是一个选项,因为我想禁用所有输入组件并隐藏输入控件。尝试使用editText.setEnabled(false) 仅设置setEnabled(false)对于按钮内的所有控件,单击 buttonOK.setOnClickListener(new OnClickListener() {

我想在点击按钮时禁用所有输入控件(例如:文本编辑、微调器)

当用户在文本字段中输入一个值并单击提交按钮时,我想禁用所有输入控件并隐藏键盘


可以在“活动”顶部添加覆盖视图以防止用户触摸屏幕,但这不是一个选项,因为我想禁用所有输入组件并隐藏输入控件。

尝试使用
editText.setEnabled(false)

仅设置
setEnabled(false)对于按钮内的所有控件,单击

 buttonOK.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
             editText.setEnabled(false);
             spinner.setEnabled(false);

                           .......

                       // here you can disable all InputControls.
        }
    });

让我们以TextView为例。然后按以下步骤操作:

textView.setClickable(false);
textView.setFocusable(false);
textView.setFocusableInTouchMode(false);

这将禁用TextView。根据需要对其他视图进行类似处理。

迭代容器布局视图,并根据它们是哪个小部件的实例来处理视图。例如,如果要隐藏所有
按钮
并禁用所有
编辑文本

for(int i=0; i < layout.getChildCount(); i++) {
    View v = layout.childAt(i);
    if (v instanceof Button) {
        v.setVisibility(View.GONE); //Or View.INVISIBLE to keep its bounds
    }else
    if (v instanceof EditText) {
        ((EditText)v).setEnabled(false);
    }
}

一种更干净的方法(如果你知道视图的ID)是将它们存储在
int[]
中,然后循环,而不是从布局中获取所有子视图,但就结果而言,它们几乎相同。

要完全隐藏小部件,只需执行以下操作:editText.setVisibility(View.GONE);你指的是:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);