我有一个包含1-Checkbox,1-EditText和2-TextView的列表视图。我想要做的是当我点击checkBox然后根据检查状态EditText样式也应该更改。我已经在Baseadapter中编写了getView()方法,如下所示:
我做错了什么?
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 :(得分: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);
}
}
}