2010-11-18 51 views
0

我試圖用一個有用的對話框消息系統創建我的程序介紹。 我不想一次性將太多的文本超載給用戶,所以我想將我的對話分解爲多個部分。 當然每個部分都會有自己的信息。如何鏈接(立即重用)相同的對話框

我使用單獨的靜態類來處理消息傳遞和流邏輯;它工作正常。 我也實際使用3個對話框。 一個用於第一條消息(因爲你不能回去),一個用於中間消息,一個用於最終消息(因爲你不能前進)。 我可以從第一條消息中調用中間消息而沒有任何問題。我也能夠回到第一條消息。但是,當我嘗試從中間消息對話框重新顯示中間消息時,新對話框不會出現。

例子: 比方說,我有4個消息,所以中間信息需要出現兩次:

    出現
  1. 第一條消息:用戶點擊下一個
  2. 中東消息出現:用戶點擊以前
  3. 第一條消息出現:用戶點擊下一步
  4. 中間消息出現:用戶點擊下一步
  5. 中間消息出現:用戶點擊下一步
  6. 最終消息顯示

的問題是,我沒有得到任何對話框上的第5步 我使用onPrepareDialog重新初始化對話,因爲他們已經習慣了。現在它基本上是一個onCreateDialog的克隆,其中交換機中的每個案例都調用適合該對話框的構建器方法。

這是我的中間對話方法的代碼。 (另2差不多,你能猜出他們的樣子來源於此。)

protected AlertDialog buildMiddleNoticeDialog() { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder 
     .setTitle(Notice.getTitle()) 
     .setMessage(Notice.getMessage()) 
     .setCancelable(false) 
     .setNegativeButton(resources.getString(R.string.notice_next_button), 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        showDialog(Notice.next()); 
       } 
      }) 
     .setPositiveButton(resources.getString(R.string.notice_previous_button), 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        showDialog(Notice.previous()); 
       } 
      }); 
    return builder.create(); 
} 

回答

3

我用一個正常的對話與TextSwitcher內,兩個按鈕來前進或後退。 TextSwitcher只是簡單地改變文本,一些動畫也可以用於文本更改。試試看! 這兩個按鈕的功能僅取決於我的字符串數組中的位置,其中所有消息都存儲在有序位置。

這就是我的活動相應地開始了對話主題:http://saintfeintcity.org/projects/sfc/repository/entry/trunk/src/org/saintfeintcity/activities/TippsAndTricksActivity.java

+0

這似乎是完美的解決方案。但是,每次我在活動生命週期開始時將對話主題活動稱爲「黑幕」時,它都會顯示出來。我甚至嘗試過PostResume並沒有得到任何東西。我知道這不是新的活動,因爲我通過用戶交互觸發了它。但我需要它在那之前彈出。 (編輯)我挖得更深一點,看到你從一個按鈕啓動你的。無論如何有任何建議? – leetheguy 2010-11-19 03:53:43

+1

Nm。這實際上是一個古老的已知錯誤。在這裏找到答案。 http://bit.ly/cFIliJ – leetheguy 2010-11-19 04:48:40

相關問題