2012-06-29 105 views
0

我有兩個活動,通過每個活動的片段在一個屏幕上並排顯示。 我想發送一個字符串,當我點擊一個活動的按鈕,然後其他活動應該檢索我發送的字符串。是否可以在不啓動新活動的情況下調用putExtras()和getExtra()?

我知道可以用經典的方法setString()getString()方法來做到這一點。但我想知道,如果不在新屏幕上打開目標活動,是否可以用putExtra()getExtra()完成?

我喜歡任何一種解決方案。 謝謝

+0

查看我的更新回答 –

+0

你能在下面看到我的進一步問題嗎? thx – hectichavana

回答

0

您可以同時活動的intent全局變量並嘗試使用從一個活動putExtra(),然後由另一活動getExtra()

例如,

public class activityOne extends Activity 
{ 
    public static Intent intent = null; 
    @Override 
    protected synchronized final void onCreate(final Bundle savedInstanceState) 
    { 
     intent = getIntent(); 
    } 
} 

public class activityTwo extends Activity 
{ 
    public static Intent intent = null; 
    @Override 
    protected synchronized final void onCreate(final Bundle savedInstanceState) 
    { 
     intent = getIntent(); 
    } 
} 

現在,只要你願意,你可以訪問他們的意圖一樣activityOne.intent,activityTwo.intent其次檢查

+0

我在一個方法上調用此方法Intent listIntent = new Intent(this,DetailsActivity.class); \t \t listIntent.putExtra(「text」,vidLocation.text);並在另一個方法上像這樣檢索它Bundle extras = getIntent()。getExtras(); \t \t text = extras.getString(「text」);但它不起作用 – hectichavana

+0

你的接收部分應該在你的DetailsActivity類中。 –

+0

我知道我已經有 – hectichavana

0

您可以發送意圖作爲廣播並具備接收片段寄存器廣播開始(並註銷其銷燬)。

發送片段:

Intent intent= new Intent(PARAM_TRANSFER); 
intent.putExtra(key, extra); 
sendBroadcast(intent); 

接收片段:

寄存器:

IntentFilter intentFilter = new IntentFilter(PARAM_TRANSFER); 
registerReceiver(mReceiver, intentFilter); 

註銷:

try { 
    unregisterReceiver(mReceiver); 
} catch (Exception e) {} 

得到PARAM:

private class MyReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    intent.getExtra(key); 
    } 
} 
+0

註冊和取消註冊的功能是什麼? – hectichavana

+0

應該接收意圖寄存器/取消註冊作爲該廣播的監聽器的片段,請閱讀BroadcastReceivers我認爲這正是您需要的 – marmor

相關問題