我创建了一个简单的ListView包含checkedTextView。
我想在用户点击listView行
时添加一个监听器1 - 将检查textView。
2 - 如果列表中有另一个文本视图已选中,则取消选中。
这是我现在写的代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<String> mStrings = new ArrayList<String>();
for(int i=0; i<30; i++) {
mStrings.add("Item " + i);
}
setListAdapter( new MultiAdapter(this, mStrings));
/* Configure ListView */
ListView lv = getListView();
lv.setOnItemClickListener(new ItemClick());
}
class ItemClick implements OnItemClickListener {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
}
private class MultiAdapter extends ArrayAdapter<String> {
private ArrayList<String> mItems;
public MultiAdapter(Context context, ArrayList<String> mStrings) {
super(context, R.layout.list2, mStrings);
this.mItems = mStrings;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row;
if (convertView == null) {
LayoutInflater inflater = getLayoutInflater();
row = inflater.inflate(R.layout.list2, parent, false);
} else
row = convertView;
CheckedTextView txt = (CheckedTextView) row.findViewById(R.id.label);
txt.setText(mItems.get(position));
return row;
}
}
你能帮我解决一下我需要编码的监听器吗?
我找不到任何关于checkedTextView的教程可以帮助我。如果您了解一些示例代码或教程,请告诉我。
答案 0 :(得分:5)
如果您想在任何给定时间内只检查最多1次,那么您可以执行以下操作:
int checkedItem;
属性。此属性显示当前已检查项目的索引。如果没有选中,则为-1。ItemClick
中设置checkedItem = position
。并致电getListAdapter().notifyDataSetChanged()
。getView
添加txt.setChecked(position == checkedItem)
。