【问题标题】:ANDROID: Highlighting selected entry in RecyclerViewANDROID:突出显示 RecyclerView 中的选定条目
【发布时间】: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();
    }
}

All Screenshots

【问题讨论】:

  • 有一个 resetSelectedPos() 方法如何再次将 selected_position 设置为 -1?然后调用 notifyDataSetChanged();这应该重新运行 onBindViewHolder 然后解决您的问题?

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


【解决方案1】:

在完成删除操作的 DetailActivity 之前设置结果。然后您可以在 onActivityResult 中处理您所需的操作:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    selectedPosition = -1;
    mAdapter.notifyDataSetChanged();
}

因为在调用onPause之前android会保存activity状态。

您可以在此处查看工作示例,请原谅我的代码质量。 MasterDetailStackOverFlow - GitHub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-21
    • 2021-12-11
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 2015-01-27
    • 2021-08-31
    • 1970-01-01
    相关资源
    最近更新 更多