Android 在屏幕之间传递字符串
考虑3个屏幕1、2、3。我希望在第一个屏幕的第二个屏幕中显示字符串(价格)。所以在第一屏我做了额外的putextra,在第二屏得到了。现在我导航到第三个屏幕,点击第三个屏幕上的后退按钮,我将返回第二个屏幕。现在字符串(价格)显示为空。请纠正我 我的代码: 屏幕1:Android 在屏幕之间传递字符串,android,string,Android,String,考虑3个屏幕1、2、3。我希望在第一个屏幕的第二个屏幕中显示字符串(价格)。所以在第一屏我做了额外的putextra,在第二屏得到了。现在我导航到第三个屏幕,点击第三个屏幕上的后退按钮,我将返回第二个屏幕。现在字符串(价格)显示为空。请纠正我 我的代码: 屏幕1: Intent intent=new Intent(getApplicationContext(),IncomeDetails.class); intent.putExtra("grpsdb", grp1);
Intent intent=new Intent(getApplicationContext(),IncomeDetails.class);
intent.putExtra("grpsdb", grp1);
startActivityForResult(intent,1);
屏幕2:
System.out.println("string="+intent.getStringExtra("grpsdb"));
Cursor c = db.getIncometitle(intent.getStringExtra("grpsdb"));
startManagingCursor(c);
屏幕3:
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent(getApplicationContext(),IncomeDetails.class);
startActivity(intent);
}
您将获得null字符串价格的
值,因为您将从第三个活动开始第二个活动(IncomeDetails.class)
如我所见,IncomeDetails.class
是你的第二项活动
您正在尝试从第三个活动开始新的第二个活动
使用代码
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent(getApplicationContext(),IncomeDetails.class);
startActivity(intent);
}
因此,只需将第三个活动放入按钮的单击中即可。。而不是再次开始第二个新活动
大概
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
<Your_3rd_Activity_Name>.finish();
}
back.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//TODO自动生成的方法存根
.finish();
}
还有一件事,使用stratActivityForResult()
从第二个活动开始第三个活动,并且在开始第三个活动时不要finish()
第二个活动。您应该在第二个活动中使用startActivityForResult()
,然后调用活动3。
然后在活动2中还使用`onActivityResult(int-requestCode、int-resultCode、Intent-data)方法。
看看这个例子:
祝你好运:)Ram kiran看到我编辑的帖子..谢谢用户370305..字符串来了..但它显示了一些类似这样的错误..你能帮我吗?.07-19 18:15:54.479:E/Cursor(5234):fillWindow()中的语句无效user370305..当我单击“上一步”按钮时..唯一的一行错误显示在我的logcat中…您还必须为2屏幕设置结果。@DeepakSharma-这不是必需的,只有当您在第二个活动的ActivityResult()上有一些基于条件的结果时才需要。@user370305-是可选的。