-1

我有一个“显示”按钮,当单击该按钮时,编辑文本框必须不可编辑,当我单击下一步时,我必须将焦点交还给编辑文本框。我尝试了下面的代码

  showans.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
               editText.setFocusable(false);
     }
  next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            editText.setFocusable(true);
            editText.setClickable(true);
      }
 }

我尝试在 setFocusable 和 setClickable 之间更改值,但没有任何帮助。当我第一次单击 showans 按钮时,编辑框失去焦点并且不可单击,尽管当我单击“下一步”按钮和所有这些按钮时我将值设置为 true。所有这些文本框和按钮都是动态生成的。任何帮助都会很棒!谢谢

4

4 回答 4

1

您可以使用

editText.setInputType(InputType.TYPE_NULL); for uneditable EditText 

editText.setInputType(InputType.TYPE_CLASS_TEXT) 

to make it editable
于 2016-05-24T11:25:58.133 回答
0

您可以尝试使用setFocusableInTouchMode- 这样您的代码将更改为以下内容:

showans.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
               editText.setFocusable(false);
               editText.setFocusableInTouchMode(false);
     }
  next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            editText.setFocusable(true);
            editText.setClickable(true);
            editText.setFocusableInTouchMode(true);
      }
 }

试试这个,让我知道它是否有帮助。

于 2016-05-24T11:29:08.097 回答
0

请改为 editText.requestFocus();

您可以使用editText.clearFocus();

于 2016-05-24T11:17:34.820 回答
0

您可以使用 setEnabled() 方法禁用或启用 editText

//to disable
editText.setEnabled(false);
//to re enable
editText.setEnabled(true);
于 2016-05-24T11:25:48.447 回答