[英]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.