0

考虑 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);

                }
4

2 回答 2

2

你得到值是因为你从你的 3rd Activity 再次String price开始 2nd Activity (IncomeDetails.class) 。

如我所见,IncomeDetails.class是您的第二个活动

并且您正在尝试从 3rd Activity 开始新的 2nd Activity,

使用代码,

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);
            }

因此,只需将finish()您的第三个活动放在按钮的点击中即可。而不是再次开始第二个新活动。

就像是,

back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                <Your_3rd_Activity_Name>.finish();
            }

还有一件事,从第二个活动开始第三个活动,当你开始第三个活动时stratActivityForResult()不要使用finish()第二个活动。

于 2012-07-19T12:41:11.727 回答
0

您应该startActivityForResult()在第二个活动中使用并从那里调用活动 3。然后在活动 2 中还使用 `onActivityResult(int requestCode, int resultCode, Intent data) 方法。看看这个例子:http ://rahulonblog.blogspot.co.uk/2010/05/android-startactivityforresult-example.html

祝你好运 :)

于 2012-07-19T12:49:39.940 回答