2011-11-14 99 views
0

我想問的建議有關,我想提出一個應用程序...激活對話框中的不同的屏幕

在我的應用程序,如果用戶按下屏幕1特定的按鈕,然後會出現一個對話框在屏幕2上打開屏幕2。否則,如果屏幕1上的按鈕未被點擊,則屏幕2上的對話將不會顯示。

我不是要求你們發表大量的代碼來回答問題,但我只是問爲了達到我的目標我應該遵循的步驟/算法......提前致謝!

回答

1

當您創建Intent

更多信息啓動活性2設置一個額外的參數上它與

boolean showDialog=... 
intent.putExtra("yourextraname", showDialog); 

然後在活性2,你可以使用這個:

boolean showDialog=getIntent().getBooleanExtra("yourextraname", false); 
1

你應該做的就是使用你的第一個活動(an activity represents a screen)中的一個Intent來傳遞一個boolean,然後在第二個活動中加載它。在那裏,您可以讀取該值並顯示或不顯示對話框。從一個活動傳遞數據到另一個使用意圖

+0

是的,這是有道理的......謝謝!我會盡快開始工作! :) – BurninatorDor

0

而不是使用意向額外兩項活動之間傳遞數據,只是將其存儲在Model類負責應用程序管理所有的數據(丙氨酸MVC設計模式) :

1

屏幕2必須知道它是否必須顯示對話框。因此,屏幕1必須向屏幕2發送一些數據(可能是「顯示對話框」的消息,或者可能是該對話框的內容)。

如果屏幕2接收到數據,則顯示對話框。否則,什麼也不做。

在Android中:

  • 如果按下按鈕,在活動1保存數據。
  • 當您想要顯示screen2時,請發送IntentstartActivity()。如果數據保存,把他們在意向書中啓動它之前(見Intent.putExtra() doc)的活性2的onCreate
  • ,獲得與getIntent()的意圖),如果真檢查它是否包含數據或沒有(見Intent.hasExtra() doc
  • ,然後顯示你的AlertDialog
0

我覺得最故障安全和簡單的解決方案將設置使用標誌SharedPreferences

代碼示例(你應該檢查對文檔):

// screen one 
sharedPreferences.edit().putBoolean("showWindow", true).commit(); 

// screen two 
if(sharedPreferences.getBoolean("showWindow", false)) { 
    sharedPreferences.edit().putBoolean("showWindow", false).commit(); 
    // show Dialog 
}