如何将值从一个适配器传递到另一个活动



ItemPriceAdapter class

从这个适配器类中,我想使用 tent 将值传递给另一个活动。我在代码中找不到问题,所以请帮助我弄清楚将一些值从这个适配器类发送到另一个活动。下面是我的代码:

holder.like.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (holder.like.isChecked()){
int likecount = 0;
likecount++;
Intent intent = new Intent(mcontext, ItemDetailActivity.class);
intent.putExtra("Likes", likecount+"");
}
}
});
}

当我单击此喜欢图标时,我想增加喜欢的数量并将这些喜欢发送到另一个活动,以显示该项目有多少喜欢。

项目详细信息活动类

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item_detail);
databaseHelper = new DatabaseHelper(this);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
String like = getIntent().getStringExtra("Likes");
Toast.makeText(this, like+"", Toast.LENGTH_SHORT).show();
}
});

我在我的吐司消息中获得了空值。

你错过了startActivity(intent)试试这个

if (holder.like.isChecked()){
int likecount = 0;
likecount++;
Intent intent = new Intent(mcontext, ItemDetailActivity.class);
intent.putExtra("Likes", likecount+"");
context.statrActivity(intent);
}

您已经创建了一个意向,但您没有启动它。

请确保使用之前创建的意图调用 startActivity。

请像这样更正您的代码

Intent intent = new Intent(mcontext, ItemDetailActivity.class);
intent.putExtra("Likes", likecount+"");
mcontext.startActivity(intent);

然后在 onCreate(( 中执行此操作

String like = getIntent().getExtras().getString("Likes");

您需要在适配器中传递context才能启动Intent

if (holder.like.isChecked()){
int likecount = 0;
likecount++;
Intent intent = new Intent(mcontext, ItemDetailActivity.class);
intent.putExtra("Likes", likecount+"");
mContext.startActivity(intent);
}

这是一个非常古老的问题,但我想我有一个答案可以帮助你。

因此,由于您不想startActivity(intent)喜欢按钮onClick(View v),您必须将整体喜欢存储在共享首选项或数据库中,并将其onCreate(Bundle savedInstanceState)您喜欢的活动中恢复。我推荐共享偏好。

相关内容

最新更新