2012-01-18 66 views
1

將某個主題應用於活動會有什麼原因會影響代碼功能嗎?我的印象是風格/主題隻影響外觀...影響代碼功能的主題?

我有一個listfragment(從數據庫填充),底部有一個按鈕,按下該按鈕後會啓動一個新的活動以允許您編輯或添加到列表/數據庫。

Intent i = new Intent(getActivity(), Activity2.class); 
startActivityForResult(i, ACTIVITY_EDIT); 

本次活動的作品,因爲它應該和在離開回listfragment說列表更新和新的項目出現在列表中。

此處,我開始有一個問題...

由於第二活動只是一個TextView,EditText上和兩個按鈕,我想我會用對話框主題,以防止它佔用了整個平板電腦屏幕不必要的。從清單文件:

<activity android:name="Activity2" android:theme="@android:style/Theme.Dialog" /> 

這不會實現我一直在尋找儘可能的活動的外觀去的,但在退出活動#2,在listfragment列表中沒有再生結果/重新顯示。添加到數據庫的工作已經完成,正如我所看到的,當我重新啓動應用程序時,我以前添加的項目終於出現了。

上面的清單除了是唯一的改變。

有關爲什麼會發生這種情況以及如何阻止它的任何想法?

回答

0

或者你可以在onResume()添加代碼來刷新它。當它調用對話框時,它會調用onPause(),然後在退出對話框時調用onResume()

+0

這解決了這個問題,非常感謝!但是,我仍然不明白爲什麼將對話主題應用到活動中會導致從一個活動轉到另一個活動的行爲發生變化。可能只是我不得不想知道的其中一件事。 :) – Barak 2012-01-19 07:44:26

0

當您啓動對話框時,您的第一個活動不會停止並重新啓動,而是您啓動全屏活動時。對話活動完成後,嘗試在列表適配器上調用notifyDataSetChanged