Android 在屏幕之间传递字符串

Android 在屏幕之间传递字符串,android,string,Android,String,考虑3个屏幕1、2、3。我希望在第一个屏幕的第二个屏幕中显示字符串(价格)。所以在第一屏我做了额外的putextra,在第二屏得到了。现在我导航到第三个屏幕,点击第三个屏幕上的后退按钮,我将返回第二个屏幕。现在字符串(价格)显示为空。请纠正我 我的代码: 屏幕1: Intent intent=new Intent(getApplicationContext(),IncomeDetails.class); intent.putExtra("grpsdb", grp1);

考虑3个屏幕1、2、3。我希望在第一个屏幕的第二个屏幕中显示字符串(价格)。所以在第一屏我做了额外的putextra,在第二屏得到了。现在我导航到第三个屏幕,点击第三个屏幕上的后退按钮,我将返回第二个屏幕。现在字符串(价格)显示为空。请纠正我

我的代码:

屏幕1:

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-是可选的。