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

时间:2011-09-13 20:12:20

标签: java android

一个非常奇怪的情况,我已经得到了这个代码,如果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)进行编辑;

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

4 个答案:

答案 0 :(得分:194)

尝试

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

而不仅仅是

etAdd.setFocusable(true);

答案 1 :(得分: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 :(得分:1)

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

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

添加:

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

必须使用此对于活动的Edittext>>

editText.setFocusableInTouchMode(true);

它为我工作完美

答案 3 :(得分:-2)

您必须将EditText设置为

etAdd.setEnabled(false);