2017-06-12 107 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