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

一个非常奇怪的情况,我有这样的代码,如果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); } 

它确实使其不可编辑,但它不能用etAdd.setFocusable(true)来编辑。

任何想法该怎么办呢? 谢谢! 🙂

尝试

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

而不是仅仅

 etAdd.setFocusable(true); 

这个解决scheme已经为我工作:

  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); } } }); 

我检查checkbox后,edittext被禁用。

我希望它会帮助别人:)

感谢Bala R在顶部我能够做到这一点。 这是另一种使用OnItemSelectedListener进行微调的方法,findViewWithTag用于查找元素:

首先通过这种方式提供您的EditText:

私人EditText的textArea;

然后创build你的EditText,不要忘记添加setTag(“thisIsTag”)。

最后粘贴在你的微调控制它(吐司是为了debugging)

 spinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (position == 0) { textArea.findViewWithTag("thisIsTag"); textArea.setBackgroundResource(R.drawable.first_background); textArea.setFocusable(false); } else if (position != 0) { textArea.findViewWithTag("thisIsTag"); textArea.setBackgroundResource(R.second_background); textArea.setFocusable(true); textArea.setFocusableInTouchMode(true); Toast toast = Toast.makeText(context, "Spinner2: position=" + position + " id=" + id, Toast.LENGTH_LONG); toast.show(); } } @Override public void onNothingSelected(AdapterView<?> parent) { //Everybody is out there having summer and Im just here writing code } } ); 

你必须设置EditText

 etAdd.setEnabled(false);