【发布时间】:2017-04-01 18:37:00
【问题描述】:
我已按照this question 的答案尝试从 RecyclerView 中突出显示所选条目。我正在使用 Master Detail Flow Layout,这个解决方案非常适合横向模式。在纵向模式下,当我选择一个条目并转到第二个活动(其中包含一个片段)并删除它(或进行更改并保存它),然后我回到 MainActivity() 时,该位置仍然突出显示.
我该如何解决这个问题?
我的一些代码:
MyAdapter.java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
int selected_position=-1;
@Override
public void onBindViewHolder(MyAdapter.ViewHolder viewHolder, final int position) {
// Set Text and Checkbox
if(selected_position == viewHolder.getAdapterPosition()){
viewHolder.itemView.setBackgroundColor(Color.MAGENTA);
}else{
viewHolder.itemView.setBackgroundColor(Color.TRANSPARENT);
}
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCallback.onEntrySelected(position);
notifyItemChanged(selected_position);
selected_position = position;
notifyItemChanged(selected_position);
}
});
}
public void dismissItem(int pos) {
selected_position=-1;
mEntries.remove(pos);
notifyDataSetChanged();
}
}
【问题讨论】:
-
有一个 resetSelectedPos() 方法如何再次将 selected_position 设置为 -1?然后调用 notifyDataSetChanged();这应该重新运行 onBindViewHolder 然后解决您的问题?
标签: android android-fragments android-recyclerview master-detail