![](/img/trans.png)
[英]How do you pass String value using button from one activity to two different activities?
[英]How to pass String from 2 activities to one?
我有兩個清單活動。
一種用於平板電腦,另一種用於普通密度電話。 單擊列表中的項目時,它會為具有列表的任一活動啟動相同的活動。
問題是當單擊一個項目時,我有一個getter和setter類,它獲取特定項目的URL並將其傳遞給這樣的啟動活動...
private String URL = null;
try{
URL = com.fttech.AbstractFeedsActivity.feed_url;
}
catch(IllegalArgumentException e){
e.printStackTrace();
URL = com.fttech.ItemsActivity.url;
}
如您所見,我試圖做的就是抓住。 因此,如果找不到第一個,則將檢索第二個。
但這似乎不起作用。
每次返回null。
我所描述的是實現此目標的最佳方法是什么? 我的方式合乎邏輯嗎? 或者,還有更好的方法。
謝謝
嘗試這個,
private String URL = null;
try{
URL = com.fttech.AbstractFeedsActivity.feed_url;
if(TextUtils.isEmpty(URL)){
URL = com.fttech.ItemsActivity.url;
// Pass this URL
}
else{
// If its not empty then it will pass the first URL
}
}
catch(IllegalArgumentException e){
e.printStackTrace();
}
無需將String傳遞給2個活動,如果您只想將字符串傳遞給一個或任意多個活動,只需將它們放在SharedPreferences中或在靜態類中聲明一個變量,然后在需要時進行設置/獲取即可。
將值從一個活動傳遞到另一個:
Intent intent = new Intent(context, CalledActivity.class);
intent.putExtra(key, value);
startActivity(intent);
如果要從調用的活動中返回一些數據,則可以將startActivityForResult()用作:
Intent intent = new Intent(context, CalledActivity.class);
intent.putExtra(key, value);
startActivityForResult(intent, requestCode);
在被叫活動中,您可以將數據設置為:
setResult(RESULT_OK, intent);
注意:在這里,您可以按意圖設置值,並將其傳遞給setResult()。
返回調用Activity時,您可以通過覆蓋以下內容獲取數據:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
//Get data from Intent "data" and do your task here....
}
}
注意:您可以通過Intent傳遞原始數據類型值,如果要傳遞其他類型,則必須使用Bundle這樣。
Bundle data = new Bundle();
data.putIntArray(key, value);
//以同樣的方式可以設置其他值.... //現在像使用原始類型一樣,將此Bundle值設置為Intent。
Intent intent = new Intent(context, CalledActivity.class);
intent.putExtra(data);
startActivity(intent);
在活動中接收數據:
//對於原始值:
DataType var_name = getIntent().getExtras().get(key);
//對於Bundle值:
Bundle var_name = getIntent().getExtras().getBundle(key);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.