簡體   English   中英

如何將數據從活動傳遞到另一個活動,然后再傳遞到Android上的另一個活動?

[英]How to pass data from an activity to another activity and then to another activity on Android?

我設法將數據從列表活動傳遞到另一個活動。 但是,從第二個活動到第三個活動,我懷疑我是否可以傳遞相同的數據,因為應用程序在進入第三個活動時會崩潰。 從第一個活動開始是否無法發送相同的數據,或者線路是否有問題?

這是第一次活動

ListView lv = getListView();

    // on selecting single product
    // launching Edit Shops Screen
    lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // getting values from selected ListItem
            String sid = ((TextView) view.findViewById(R.id.sid)).getText()
                    .toString();

            // Starting new intent
            Intent in = new Intent(getApplicationContext(), ShopPage.class);
            // sending sid to next activity
            in.putExtra(TAG_SID, sid);

            // starting new activity and expecting some response back
            startActivity(in);
        }
    });

這是第二項活動:

        // getting shop details from intent
        Intent i = getIntent();

        // getting shop id (sid) from intent
        sid = i.getStringExtra(TAG_SID);

editButton.setOnClickListener(new OnClickListener()
        {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            sid = ((TextView) v.findViewById(R.id.sid)).getText()
                    .toString();

            // Starting new intent
            Intent e = new Intent(getApplicationContext(),
                    EditShopPage.class);
            // sending sid to next activity
            e.putExtra(TAG_SID, sid);
            startActivity (e);
            }
    });

這是第三項活動:

    // getting shop details from intent
    Intent i = getIntent();

    // getting shop id (sid) from intent
    sid = i.getStringExtra(TAG_SID);

第一個活動來自ListView活動,其中數據通過onItemClickListener傳遞。 然后,第二個活動將收到,但通過onClick(一個按鈕)傳遞到下一個活動。 此后,該應用程序停止運行。

沒有日志,我看不到錯誤的來源。 大多數時候,當我必須將一個簡單的變量(例如String)從一個活動傳遞到另一個活動時,我正在使用此代碼。 希望對您有所幫助。

第一次活動:

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
Bundle bundleF = new Bundle();
bundleF.putString("type", NOTIF);               
intent.putExtras(bundleF);
startActivity(intent);

第二項活動:

getIntent().getExtras().getString("type")

在第二個活動中:刪除以下代碼,因為您已經從第一個活動中獲得了sid。

sid = ((TextView) v.findViewById(R.id.sid)).getText()
                .toString();

i.getStringExtra(TAG_SID);添加sid i.getStringExtra(TAG_SID); 在您已經完成的Intent中。 如果您的IDE顯示任何內容,請將sid變量定為final或將其聲明為Activity成員變量。

希望它會有所幫助。

暫無
暫無

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

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