RecyclerView onClick从getAttribute获取结果而不是getPosition

时间:2016-06-30 07:31:33

标签: android android-recyclerview

我已成功创建基于适配器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。

1 个答案:

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

快乐编码。