Java EditText.setFocusable(false);can';不能设置为true/

Java EditText.setFocusable(false);can';不能设置为true/,java,android,Java,Android,一个非常奇怪的情况,我有一段代码,如果SpnSelected.equals(“服务”),应该使EditText字段不可编辑,如果它是其他内容,则再次可编辑 final EditText etAdd = (EditText)dialogAddTextView.findViewById(R.id.etSymb); if ( SpnSelected.equals("Service") ) { etAdd.setFocusable(false); Tex

一个非常奇怪的情况,我有一段代码,如果SpnSelected.equals(“服务”),应该使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);
    } 
它确实使其不可编辑ok,但它不能使用etAdd.setFocusable(true)返回编辑功能


有什么办法吗?谢谢!:)

您必须将编辑文本设置为

etAdd.setEnabled(false);
试一试

而不仅仅是

etAdd.setFocusable(true);

这个解决方案对我有效:

 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将被禁用


我希望它能帮助某些人:)

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

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

加:

必须将此用于活动编辑文本>>

editText.setFocusableInTouchMode(true);

它对我很有效

设置启用(真/假)
是否更合适?是否有效。只是它使文本编辑有点灰色,好像它禁用了。因此,setFocusable更可取,只是它不起作用。:)您为我节省了时间。根据
.setFocusableInTouchMode()
调用
的文档,setFocusableInTouchMode(true)
使调用
.setFocusable(true)
变得不必要。即只需调用
etAdd.setFocusableInTouchMode(true)editText.setClickable(true);
editText.setFocusableInTouchMode(true);
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);