ANDROID:在RecyclerView中突出显示所选条目

时间:2016-11-18 01:48:48

标签: android android-fragments android-recyclerview master-detail

我已按照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();
    }
}

All Screenshots

1 个答案:

答案 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