我已成功创建基于适配器getPosition的onClick。
常见的方法是在onBindViewHolder上创建onClicklistener
@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);
但是,我正在尝试实现的是,我将用于转到下一个Activity的参数是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 但是,在Log and toast上说,我点击了正确的idNumber。
答案 0 :(得分:1)
有时候if(StringValue == StringValue1)
没有给出预期的结果。尝试更换
if (idNumber == "7")
与
if (idNumber.equals("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);
快乐编码。