我有一个RecyclerView
,它在每行中显示两条数据。
两者都来自List
播放器。
我需要的是每当单击element
时更新第二条数据(它是一个计数器,一个int)。
基本上,我已经修改了这个播放器List
,但不知道如何将其放回编辑过的RecyclerView中。
我的适配器代码
TextView name;
TextView counter;
CoursesViewHolder(View itemView) {
super(itemView);
itemView.setOnClickListener(this);
name = (TextView) itemView.findViewById(R.id.textName);
counter = (TextView) itemView.findViewById(R.id.textCounter);
}
[...]
@Override
public void onBindViewHolder(CoursesViewHolder holder, int position) {
Player player = mArrayCourses.get(position);
holder.name.setText(player.getName());
holder.counter.setText(String.valueOf(player.getCount()));
}
我尝试过的
adapter = new CoursesAdapter(players);
myList.setAdapter(adapter);
myList.invalidate();
编辑://我的RecyclerView是的活动代码
myList = (RecyclerView) findViewById(R.id.playersVote);
myList.setLayoutManager(new LinearLayoutManager(this));
adapter = new CoursesAdapter(players);
myList.setAdapter(adapter);
// RecyclerView with a click listener
CoursesAdapter clickAdapter = new CoursesAdapter(players);
clickAdapter.setOnEntryClickListener(new CoursesAdapter.OnEntryClickListener() {
@Override
public void onEntryClick(View view, int position) {
// Let each player vote (ghosts too)
Player player = players.get(position);
player.incrementCount();
//Toast.makeText(ListPlayersVote.this, String.valueOf(player.getCount()), Toast.LENGTH_SHORT).show();
votes++;
每次数据更改时,都应该使用notifyDataSetChanged()
通知适配器中的这些更改
notifyDataSetChanged():通知附加的观察者基础数据已经已更改,并且任何反映数据集的视图都应自行刷新。
像这样:
adapter = new CoursesAdapter(players);
myList.setAdapter(adapter);
....
....
adapter.notifyDataSetChanged();
使用以下代码更改recyclerview 中的特定项目
public void updatedelivact(String value,int index) {
ChatMessage chatMessage = getItem(index);
Collection<Integer> readIds = chatMessage.getDeliveredIds();
readIds.add(userid);
chatMessage.setReadIds(readIds);
//To change the perticular item
notifyItemChanged(index);
}