我想显示TextView
个项目的网格。每个项目都显示项目被点击的频率。每次点击时,该值应增加+1。
问题:如何在每个项目上正确绑定它的计数器值?
//show simple grid with textview items, each showing how many times each was clicked
GridView grid;
final List<AtomicInteger> items = new ArrayList<>();
for (int i = 0; i < 6; i++) {
items.add(new AtomicInteger(0)); //initialize with count=0
}
grid.setAdapter(MyItemAdapter(items));
grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
items.get(position).incrementAndGet();
//TODO how to populate this to the TextView?
}
});
如何将新计数写入TextView
,以便更新显示?
将计数器列表传递给适配器并将其在clicklistener中增加是否正确?
或者我应该将clicklistener添加到类本身内的MyItemAdapter
?
答案 0 :(得分:0)
父变量包含网格视图上的所有项目。 您可以通过
找到点击的项目> dframe
variable dates
1 A 2000
2 B 2016
3 C 2005
这仅更新网格视图中单击的项目
修改强>: 如果您为网格项设置了自定义项布局,
((TextView) parent.getChildAt(position)).setText(String.valueOf(count));