EditText.setFocusable(ложь); не может быть установлено в true.:/ - программирование
Подтвердить что ты не робот

EditText.setFocusable(ложь); не может быть установлено в true.:/

Очень странная ситуация, у меня есть этот код, который должен сделать EditText зарегистрированным uneditable, если SpnSelected.equals( "Сервис" ) и снова редактируется, если что-то еще.

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

Он делает его uneditable ok, но он не дает возможности редактировать обратно с помощью etAdd.setFocusable(true);

Любые идеи, что с этим делать? Благодарю!:)

4b9b3361

Ответ 1

Try

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

вместо

etAdd.setFocusable(true);

Ответ 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 отключен.

Я надеюсь, что это поможет кому-то:)

Ответ 3

Я использую ниже фокус кода и нажмите "Удалить" и добавьте:

Remove: secondFirstHalfEditText.setClickable(false); secondFirstHalfEditText.setFocusable(false);

Добавить:

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

Должен использовать это для активного Edittext →

editText.setFocusableInTouchMode(true);

Его работа для меня безупречно

Ответ 4

Вы должны установить EditText в

etAdd.setEnabled(false);