2016-06-30 35 views
0

我成功創建了一個基於適配器getPosition的onClick。RecyclerView onClick從getAttribute獲取結果not getPosition

常見的方式是讓onClicklistener在onBindViewHolder

@Override 
public void onBindViewHolder (final MyViewHolder holder, final int position){ 
holder.mId.setText(itemList.get(position).getId()); 

holder.itemView.setOnClickListener(new View.OnClickListener(){ 

public void onClick(View view) { 

final Intent intent; 
if (position == 0) { 
intent = new Intent(context, MyActivity.class); 
} else if (position == 1) { 
intent = new Intent(context, MyActivity2.class); 
} else { 
intent = new Intent(context, MyActivity3.class); 
} 
context.startActivity(intent); 

但是,我試圖實現的是,我是要去使用的參數轉到下一個活動是的getId。

我修改了我的代碼。

holder.itemView.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View view) { 
final String idNumber = itemList.get(position).getId(); 
final Intent intent; 
if (idNumber == "7") { 
intent = new Intent(context, MyActivity.class); 
} else if (idNumber == "10") { 
intent = new Intent(context, MyActivity2.class); 
} else { 
intent = new Intent(context, MyActivity3.class); 
} 
context.startActivity(intent); 
Log.e("YOUR ID NUMBER IS", idNumber); 
Toast.makeText(context, "Recycle Click" + idNumber,Toast.LENGTH_SHORT).show(); 
} 
}); 

當我運行它,當我點擊任何一個項目,它一直要MyActivity3 但是,對日誌和烤麪包說,我點擊右邊的ID號。

回答

1

有時if(StringValue == StringValue1)沒有給出預期的結果。嘗試用

if (idNumber.equals("7")) 

更換

if (idNumber == "7") 

所以你的代碼會像,

if (idNumber.equals("7")) { 
    intent = new Intent(context, MyActivity.class); 
} else if (idNumber.equals("10")) { 
    intent = new Intent(context, MyActivity2.class); 
} else { 
    intent = new Intent(context, MyActivity3.class); 
} 
context.startActivity(intent); 

編碼愉快。

+0

該死的,你是對的。謝謝你這麼。 –

+0

樂意幫忙,你可以接受這個答案。 ;) –