2012-06-24 184 views
0

我目前正在開發一個android項目,並且當用戶在使用對話框主題的活動上按下後退按鈕時遇到問題。按下活動對話框上的後退按鈕停止第一個活動

基本上我有一個活動,讓我們稱之爲MyActivity,第二個活動使用@android:style/Theme.Holo.Dialog,稱爲MyDialog。

當屏幕上顯示MyDialog活動時,活動對話框會按照預期在對話框中啓動,但是當用戶按下後退按鈕時,對話框活動會按照預期關閉,但開始活動即MyActivity似乎完成,我只是得到一個空白的屏幕。

我沒有設置任何啓動活動的標誌,所以我不明白它爲什麼會這樣做。以下是我用來啓動對話框活動的代碼。下面

public OnItemClickListener mListView = new OnItemClickListener() { 

    public void onItemClick(AdapterView<?> arg0, View view, int position, 
      long id) { 
     String selection = ((TextView)view).getText().toString(); 
     StringTokenizer st = new StringTokenizer(selection, "\n"); 
     String name = st.nextToken(); 
     String username = st.nextToken(); 
     Intent intent = new Intent(PasswordList.this, LoginSelectionManager.class); 
     intent.putExtra("name", name); 
     intent.putExtra("username", username); 
     startActivity(intent); 
    } 
}; 

UPDATE 作爲請求是MyActivity的的onResume方法的代碼

@Override 
public void onResume() 
{ 
    super.onResume(); 
    populateListArray(); 
} 

所有這些都做的是調用重新填充與來自數據庫的數據ListView的陣列適配器的功能。以下是此代碼

private void populateListArray() 
{ 

    ArrayList<Spanned> passwords = managePasswordList.getPasswordList(); 
    if (passwords != null) 
    { 
     passwordArrayAdapter = new ArrayAdapter<Spanned>(this, 
       android.R.layout.simple_list_item_1, passwords); 
     setListAdapter(passwordArrayAdapter); 
     passwordArrayAdapter.setNotifyOnChange(true); 
     myListView.setTextFilterEnabled(true); 
    } 
} 
+0

添加'onResume' MyActivity'的'.... – Ronnie

+0

我已經添加了的onResume – Boardy

+0

你把日誌中'onFinish'代碼和檢查,以確保它被稱爲? – Ronnie

回答

0

認沽日誌,看看哪些真正完成......我懷疑在按下背面的對話活動結束..

,你得到的其實是一個空白的屏幕意味着你的活動還沒有結束但是,它只是列表視圖是空的。

所以出現的下一個問題是爲什麼你的密碼列表在onResume爲空。你真的需要在onResume中設置適配器嗎?看到它移動到onCreate ..

+0

它的definetely不做與適配器是空的。當活動首次創建時,onCreate將適配器設置爲正確。 onResume再次填充適配器,因爲數據可以從其他活動更改,以便刷新適配器。我不認爲它實際上向我展示了列表視圖,因爲冰淇淋三明治酒吧也沒有顯示。它字面上只是一個空白的屏幕,只有android通知欄 – Boardy

+0

把日誌放在'onFinish'這兩個活動中,看看哪些實際完成...我懷疑對話活動完成後按... – Ronnie

+0

我已經標記此正確的,但它是onFinish的幫助記錄。我注意到,這是因爲從另一個活動,第一個啓動啓動MyActivity的人,我出於某種原因錯誤地添加了沒有歷史標誌,所以當我按下後退按鈕時,它將返回到第一個活動。它是空白的,因爲它顯示了某些佈局取決於某些if語句,並且它們都不是真的,所以沒有顯示佈局 – Boardy

0

您需要爲啓動新Activity的意圖設置標誌。它可以通過intent.setFlags(Intent。...)來完成,其中intent是一個Intent對象。查看Android文檔以獲取更多詳細信息在這兩個活動的onFinish

+0

謝謝,我試過使用''intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);''但沒有任何區別。仍然在做同樣的事情 – Boardy

相關問題