2015-05-16 4 views
-3

У меня есть listview с 1-Checkbox, 1-EditText и 2-TextView. То, что я хочу сделать, - это когда я нажимаю на checkBox, тогда в зависимости от выбранного состояния стиль EditText также должен быть изменен. Я закодирован в методе Baseadapter getView(), как показано ниже:Android: изменить стиль EditText внутри списка Viewatically

Что я делаю неправильно?

holder.checkBox.setTag(holder.editText); 
    if (boolAdpaterArrayList.get(position)) { 
        holder.editText.setTextAppearance(context, 
          R.style.edittextStyleChecked); 
        holder.checkBox.setChecked(true); 
       } else { 
        holder.editText.setTextAppearance(context, 
          R.style.edittextStyleUnchecked); 
        holder.checkBox.setChecked(false); 
       } 
     } 

holder.checkBox 
       .setOnCheckedChangeListener(new OnCheckedChangeListener() { 

        @Override 
        public void onCheckedChanged(CompoundButton view, 
          boolean isChecked) { 
        EditText editText = (EditText)buttonView.getTag(); 
        if(isChecked){ 
         editText.setTextAppearance(context, 
            R.style.edittextStyleChecked); 
        }else{ 
         editText.setTextAppearance(context, 
            R.style.edittextStyleUnchecked); 
       } 
       notifyDataSetChanged(); 
        } 
       }); 
+0

Почему downvote ??? – Pankaj

+0

Вы обновили адаптер listview после того, как щелкнули элемент checkbox? –

+0

yes i do not notifyDataSetChanged() – Pankaj

ответ

0

Использовать check box state changed listener. Если вы используете шаблон ViewHolder, вы можете легко извлечь viewHolder из аргументов. Он должен выглядеть примерно так:

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
ViewHolder holder = (ViewHolder) buttonView.getTag(); 
if (isChecked) { 
      holder.editText.setTextAppearance(context, 
        R.style.edittextStyleChecked); 
     } else { 
      holder.totalRoom.setTextAppearance(context, 
        R.style.edittextStyleUnchecked); 
     } 
} 
} 
+0

не работает. checked with notifydataSetchanged также – Pankaj

+0

Ну, я просто заметил, что вы используете два разных элемента держателя для отмеченных и непроверенных (editText и totalRoom). Попробуйте использовать editText или totalRoom в обоих случаях. – torque203

+0

Я отредактировал вопрос, что он не отличается – Pankaj

Смежные вопросы