我已按照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();
}
}
答案 0 :(得分:0)
在删除操作完成DetailActivity之前设置结果。然后,您可以在onActivityResult中处理所需的操作:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
selectedPosition = -1;
mAdapter.notifyDataSetChanged();
}
因为在调用onPause之前,android会保存活动状态。
您可以在这里查看工作示例,请原谅我的代码质量。 MasterDetailStackOverFlow - GitHub