我有一个Android ListView,它包含一个点击时需要检查的按钮.click事件似乎正在起作用:
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
LayoutInflater inflater = this._context.getLayoutInflater();
if (convertView == null) {
convertView = inflater.inflate(R.layout.checkbox_cell, null);
holder = new ViewHolder();
holder.checkbox = (CheckBox) convertView.findViewById(R.id.button);
holder.textView = (TextView) convertView.findViewById(R.id.textView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if(holder.checkbox.isChecked()) {
convertView.setBackgroundColor(Color.RED);
holder.textView.setBackgroundColor(Color.RED);
convertView.invalidate();
} else {
convertView.setBackgroundColor(Color.GREEN);
}
holder.checkbox.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Arrays.sort(_context.checkBoxIds);
int index = Arrays.binarySearch(_context.checkBoxIds, position);
if (((CheckBox) v).isChecked()) {
holder.textView.setPaintFlags(holder.textView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
} else {
holder.textView.setPaintFlags(holder.textView.getPaintFlags() & (~Paint.STRIKE_THRU_TEXT_FLAG));
}
holder.textView.setBackgroundColor(Color.RED);
notifyDataSetChanged();
}
});
return convertView;
}
Run Code Online (Sandbox Code Playgroud)
正如您可能看到我将背景更改为绿色初始,当我单击"复选框"时,背景需要为红色(这只是一个测试,以查看UI是否更新).我试图更新中的视图onClick,但那也不起作用.在onClick我打电话之后notifyDataSetChanged()看看UI是否会在刷新时发生变化.在holder.checkbox.isChecked()似乎是真实的,但是当我的背景设置为红色的UI将不会更新.有谁知道这里出了什么问题?我此刻毫无头绪.
| 归档时间: |
|
| 查看次数: |
239 次 |
| 最近记录: |