EditText.setFocusable(false); 不能设置为true。:/


71

一个非常奇怪的情况是,我得到的这段代码应该使EditText文件在SpnSelected.equals(“ Service”)下无法编辑,而在其他情况下可以再次编辑。

final EditText etAdd = (EditText)dialogAddTextView.findViewById(R.id.etSymb);

    if ( SpnSelected.equals("Service") )
    {
        etAdd.setFocusable(false);
        TextView tvInfo = (TextView)dialogAddTextView.findViewById(R.id.tvAddTextInfo);
    }
    else
    {
        etAdd.setFocusable(true);
        TextView tvInfo = (TextView)dialogAddTextView.findViewById(R.id.tvAddTextInfo);
    } 

它的确使它不可编辑,但是它没有带来使用etAdd.setFocusable(true)进行编辑的功能。

有什么想法怎么做吗?谢谢!:)


会不会setEnabled(true/false)更合适?
Bala R

作品。只有它使textedit有点灰色,就像它被禁用一样。因此,setFocusable将是更可取的,只有它不起作用。:)
罗杰

Answers:


228

尝试

etAdd.setFocusableInTouchMode(true);
etAdd.setFocusable(true);

而不只是

etAdd.setFocusable(true);

7
您节省了我的时间。
Artem Kalachev 2014年

13
根据用于.setFocusableInTouchMode()呼叫的文档,.setFocusableInTouchMode(true)使呼叫.setFocusable(true)不必要。即,您只需要致电etAdd.setFocusableInTouchMode(true);
Jacob R

您是薄荷糖(
拯救

2

这个解决方案为我工作:

 EditText test3 = (EditText) findViewById(R.id.edittext);
 CheckBox check1= (CheckBox) findViewById(R.id.checkBox1);
 test3.setClickable(false);
 test3.setEnabled(false);
 test3.setFocusable(false);
 check1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
      if(check1.isChecked()){
         test3.setText("");
         test3.setClickable(false);
         test3.setEnabled(false);
         test3.setFocusable(false);
      } else {
         test3.setClickable(true);
         test3.setEnabled(true);
         test3.setFocusable(true);
         test3.setFocusableInTouchMode(true);
      }
    }
 });

在我选中复选框后,edittext被禁用。

我希望它可以帮助某人:)


2

我使用下面的代码焦点,然后单击“删除并添加”:

去掉: secondFirstHalfEditText.setClickable(false); secondFirstHalfEditText.setFocusable(false);

添加:

editText.setClickable(true);
editText.setFocusableInTouchMode(true);
editText.setFocusable(true);

必须将其用于活动Edittext >>

editText.setFocusableInTouchMode(true);

它为我完美地工作


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.