2017-06-12 57 views
0

我实现了RecyclerView List,每当我点击列表中的某些东西时,应用程序就会崩溃。RecyclerView OnClick方法

下面的代码:

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; 
} 
+3

发布错误日志。 – Pavan

+0

对可读性和代码格式进行少量编辑。 –

回答

0

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

+0

你好Krunal Kapadiya, 谢谢你的回答。说实话,我试图实现一个RecyclerView列表,可以点击打开新的活动。我认为我的整个代码是错误的。你能帮我怎么做到吗?我使用的NavigationDrawer在点击时调用特定的片段(第一,第二和第三片段)在第一片段中我想创建这个调用另一个活动的RecyclerView List。这是第五天我正在寻找好的教程,但没有任何结果。我可以和你协商吗? – Martin95y