2016-06-30 3 views
0

アダプターgetPositionに基づいてonClickを正常に作成しました。RecyclerView onClick getAttributeから結果を取得しないgetPosition

一般的な方法は、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); 

でonClicklistener作るが、その、私は何を達成しようとしていますことは、次の活動に行く私はつもりだ使用パラメータがあるの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しかししようとして続けて、私はをクリックし、右idNumberを言います。

答えて

1

ときどきif(StringValue == StringValue1)が期待した結果を出せません。

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); 

ハッピーコーディングので、あなたのコードは次のようになります

if (idNumber.equals("7")) 

if (idNumber == "7") 

を交換してみてください。

+0

あなたは正しいです。ありがとうございます。 –

+0

お寄せいただきありがとうございます。この回答を受け入れることができます。 ;) –

関連する問題