it-swarm.cn

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

一个非常奇怪的情况,我已经得到了这个代码,如果SpnSelected.equals(“Service”)可以使EditText无法编辑,并且可以再次编辑,如果是其他东西。

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)编辑回来的能力;

有什么想法可以做些什么吗?谢谢! :)

60
Roger

尝试

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

而不仅仅是

etAdd.setFocusable(true);
195
Bala R

这个解决方案对我有用:

 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
Yohanfou

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

删除:secondFirstHalfEditText.setClickable(false); secondFirstHalfEditText.setFocusable(false);

添加:

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

必须使用此For Foractive Edittext >>

editText.setFocusableInTouchMode(true);

它为我工作完美

1
Shohel Rana