Android 如何将值从一个适配器传递到另一个活动
ItemPriceAdapter类Android 如何将值从一个适配器传递到另一个活动,android,android-intent,android-adapter,Android,Android Intent,Android Adapter,ItemPriceAdapter类 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_item_detail); databaseHelper = new DatabaseHelper(this); getSupportActionBar().set
@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();
}
});
从这个适配器类中,我想使用intent将值传递给另一个活动。我在代码中找不到问题,因此请帮助我确定如何将一些值从此适配器类发送到另一个活动。下面是我的代码:
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+"");
}
}
});
}
当我点击这个like图标时,我想增加like的数量,并将这些like发送到另一个活动,以显示该项目的like数量
ItemDetailActivity类
@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();
}
});
我的toast Message中得到空值 您已经创建了一个意图,但是您没有启动它
确保调用startActivity时带有您先前创建的意图。您缺少的
startActivity(意图)
请尝试此操作
if (holder.like.isChecked()){
int likecount = 0;
likecount++;
Intent intent = new Intent(mcontext, ItemDetailActivity.class);
intent.putExtra("Likes", likecount+"");
context.statrActivity(intent);
}
请像这样更正代码
Intent intent = new Intent(mcontext, ItemDetailActivity.class);
intent.putExtra("Likes", likecount+"");
mcontext.startActivity(intent);
然后在onCreate()中执行此操作
您需要在适配器中传递
上下文
,以启动意图
if (holder.like.isChecked()){
int likecount = 0;
likecount++;
Intent intent = new Intent(mcontext, ItemDetailActivity.class);
intent.putExtra("Likes", likecount+"");
mContext.startActivity(intent);
}
这是一个非常古老的问题,但我想我有一个答案可以帮助你
因此,由于您不想在like按钮
onClick(View v)
的偶数中startActivity(intent)
,因此您必须将整体like存储在SharedReference或数据库中,然后在首选活动中将其返回onCreate(Bundle savedInstanceState)
。我推荐SharedReference。考虑到他在适配器中,他可能需要使用上下文@ZUNJAE我不想点击那个图标就开始那个活动。我想使用intent将值传递给该活动。使用startActivity(intent)可以解决这个问题吗?当我使用mcontext.startActivity(intent)时,它会无误地传递值,但我不想调用该活动。是否还有其他选项>Bundle=getIntent().getExtras()代码>在获取值之后String like=bundle.getString(“Likes”,“Likes”)代码>@HardikVasani不工作。我已经试过了,但也试过一次和你一样的。不!你还有其他想法吗?我还尝试使用使字符串值为静态,并尝试像MainActivity mna=newmainActivity()那样进行解析;和mna.methodname();这在我的情况下也是失败的。请帮帮我!!您可以使用此库轻松实现我不想在单击该图标时打开活动;我所要做的就是将值从适配器类传递到另一个活动。我认为你的纠正不会有帮助。正如我所知,当我使用startActivity(意图)时,它将打开另一个活动。我不想这样做,我想将likes计数值传递给该活动。请重新评论我,如果你有一些解决我的问题的办法。当然,我会这样做使用接口或广播接收器