2013-10-08 4 views
0

У меня есть editText внутри listview. Я использовал addTextChangedListener, после textChange У меня есть условие, когда это правда, я хочу, чтобы отключить все EditText в ListView, кроме тот, где я использую TextChangeListenerКак отключить и включить определенный editText внутри listView в android?

у меня есть это в myCustomAdapter до сих пор:

 myHolder.txt_Qty.addTextChangedListener(new TextWatcher() { 

      public void onTextChanged(CharSequence s, int start, 
        int before, int count) { 


      } 

      public void beforeTextChanged(CharSequence s, int start, 
        int count, int after) { 

      } 

      public void afterTextChanged(Editable s) { 
       if(isError == true){ 
        Log.i("afterchange errorPos", String.valueOf(errorPos)); 
        S_4th_SelectItem.lst_listOrder.getChildAt(errorPos).setBackgroundColor(Color.rgb(255, 153, 204)); 
        S_4th_SelectItem.btn_Update.setEnabled(false); 

        myHolder.txt_Qty.setEnabled(false); 

        ((Activity) context).getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
       }else { 
        S_4th_SelectItem.btn_Update.setEnabled(true); 

       } 

      } 
     }); 
+0

Я думаю, вы можете добиться этого, объявив одну глобальную логическую переменную, которая указывает, что параметр myHolder.txt_Qty включен или отключен, а также должен уведомлять адаптер, используя notifyDataSetChanged(). –

ответ

1

Если вы хотите, чтобы отключить все EditText сек по умолчанию добавьте следующее перед addTextChangedListener

myHolder.txt_Qty.setEnabled(false); 
+0

Я хочу отключить весь editText, который я не нажимал так, когда я нажимаю на editText в первом указателе дочернего элемента Listview, это означает, что щелкнутый editText не будет отключен. – NewDroidDev

+0

Если edittext уже отключен, тогда щелчок по нему даже не будет работать, потому что вы попросили его отключить. Возможно, вам нужно изменить свой подход к дизайну. – waqaslam

+0

Нет. Я имею в виду, что мне не нужно было отключать весь editText. Мне нужно только отключить редактируемый текст, который я не нажал. – NewDroidDev

0

Попробуйте это ..

myHolder.txt_Qty.addTextChangedListener(new TextWatcher() { 

      public void onTextChanged(CharSequence s, int start, 
        int before, int count) { 

       if(isError){ 
        Log.i("afterchange errorPos", String.valueOf(errorPos)); 
        S_4th_SelectItem.lst_listOrder.getChildAt(errorPos).setBackgroundColor(Color.rgb(255, 153, 204)); 
        S_4th_SelectItem.btn_Update.setEnabled(false); 

        myHolder.txt_Qty.setEnabled(false); 

        ((Activity) context).getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
       }else { 
        S_4th_SelectItem.btn_Update.setEnabled(true); 

       } 
      } 

      public void beforeTextChanged(CharSequence s, int start, 
        int count, int after) { 

      } 

      public void afterTextChanged(Editable s) { 


      } 
     }); 
0

ответ Waqas будет работать, еще одно решением, которое является весьма дорогостоящим является перебрать все остальные элементы списка и отключить каждый EditText в них, не слишком элегантно, но будет делать свою работу.