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)
您喜欢的活动中恢复。我推荐共享偏好。