【问题标题】:EditText focus method not working as expected in android [duplicate]EditText焦点方法在android中没有按预期工作[重复]
【发布时间】:2016-09-21 13:40:51
【问题描述】:

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

  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。所有这些文本框和按钮都是动态生成的。任何帮助都会很棒!谢谢

【问题讨论】:

  • 创建动态按钮时的实际问题是什么?
  • 不,我只想提一下。我没有任何问题因为@AbhishekPatel
  • 您可以使用 setEnabled() 方法完全禁用或启用edittext视图。
  • 非常感谢!!它有效@MalithLakshan
  • 使用 setEnabled()

标签: android button android-edittext focusable


【解决方案1】:

你可以使用

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

和

editText.setInputType(InputType.TYPE_CLASS_TEXT) 

to make it editable

【讨论】:

    【解决方案2】:

    请改成editText.requestFocus();

    你可以使用editText.clearFocus();

    【讨论】:

    • 我应该在哪里添加这个?单击下一个按钮时?@Arshid KV
    • 不,它不工作
    • 你可以使用editText.clearFocus()
    • 我应该在哪里添加这个
    【解决方案3】:

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

    //to disable
    editText.setEnabled(false);
    //to re enable
    editText.setEnabled(true);
    

    【讨论】:

      【解决方案4】:

      您可以尝试使用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);
            }
       }
      

      试一试,如果有帮助,请告诉我。

      【讨论】:

        猜你喜欢
        • 2020-08-19
        • 2023-03-05
        • 2016-11-15
        • 2016-12-12
        • 2014-12-17
        • 2012-11-01
        • 2011-12-01
        • 1970-01-01
        • 2013-03-07
        相关资源
        最近更新 更多