簡體   English   中英

在屏幕之間傳遞字符串

[英]Passing string between screens

考慮3個屏幕1,2,3。我想從第一個屏幕在第二個屏幕中的字符串(價格)。 所以在第一個屏幕我做了putextra並在第二個屏幕得到了。 現在我導航到第3個屏幕並點擊第3個屏幕中的后退按鈕我將回到第2個屏幕。現在該字符串(價格)顯示為null。請糾正我。

我的代碼:

屏蔽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);

                }

您將獲得String price 值,因為您正在從第3個Activity中再次啟動第二個Activity (IncomeDetails.class)

正如我所見, IncomeDetails.class是你的第二個活動

並且您正嘗試從第3個活動開始新的第2個活動,

使用代碼,

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()放在按鈕單擊的第3個活動中,而不是再次啟動第2個新活動。

就像是,

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

還有一件事,使用stratActivityForResult()從第二個Activity開始第3個Activity,在你開始第3個Activity時不要finish()第二個Activity。

您應該在第二個活動中使用startActivityForResult()並從那里調用活動3.然后在活動2中也使用`onActivityResult(int requestCode,int resultCode,Intent data)方法。 看看這個例子: http//rahulonblog.blogspot.co.uk/2010/05/android-startactivityforresult-example.html

祝好運 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM