【问题标题】:RecyclerView OnClick MethodRecyclerView OnClick 方法
【发布时间】:2017-06-12 14:01:00
【问题描述】:

我实现了 RecyclerView 列表,每当我单击列表中的某些内容时,应用程序就会崩溃。

代码如下:

public void onBindViewHolder(MyViewHolder holder, final int position) {
    holder.mTextView.setText(mDataset[position]);
    holder.mCardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final Intent intent;
            switch (getAdapterPostion()) {
                case 0:
                    intent =  new Intent(context, TestingActivity.class);
                    break;

                case 1:
                    intent =  new Intent(context, TestingActivity.class);

                    break;

                case 2:
                    intent =  new Intent(context, TestingActivity.class);
                    break;

                case 3:
                    intent =  new Intent(context, TestingActivity.class);
                    break;

                case 4:
                    intent =  new Intent(context, TestingActivity.class);
                    break;

                case 5:
                    intent =  new Intent(context, TestingActivity.class);
                    break;

                default:
                    intent =  new Intent(context, Timeline.class);
                    break;
            }
            context.startActivity(intent);
        }
    });
}

private int getAdapterPostion() {
    return 0;
}

【问题讨论】:

  • 发布错误日志。
  • 对易读性和代码格式稍作修改。

标签: java android onclick android-recyclerview onclicklistener


【解决方案1】:

使用 holder.getAdapterPosition() 代替。并且请将点击监听器放在 viewHolder 中,而不是 BindViewHolder 中。 BindViewHolder 每次调用时都会调用 notifyDatasetChanged() 以及向下滚动时。它会影响应用程序的性能。让我知道任何查询。一切顺利。

【讨论】:

  • 您好 Krunal Kapadiya,感谢您的快速回答。老实说,我正在尝试实现一个 RecyclerView List,它可以在点击时打开新的活动。我认为我的整个代码是错误的。你能帮我怎么做吗?我使用 NavigationDrawer 在单击时调用特定片段(第一个、第二个和第三个片段) 在第一个片段中,我想创建这个调用另一个活动的 RecyclerView 列表。已经第五天了,我正在寻找好的教程,但没有任何结果。我可以和你商量一下吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-06
  • 2016-11-10
  • 1970-01-01
  • 2016-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多