我有一個我以前已經實施的活動。動態顯示活動爲對話框
它涉及到各地製作的應用程序內購買,因此所有的邏輯是相對自給自足的。它不需要關心其他任何事情。
現在,我希望作出這樣的活動有選擇地展示了在一個對話框中其他活動。有沒有快速的方法來做到這一點?然而,我仍然需要保持舊的行爲,其中活動顯示爲常規屏幕。
那麼,有什麼方法,我可以啓動與該活動使其顯示爲一個對話框?
謝謝
我有一個我以前已經實施的活動。動態顯示活動爲對話框
它涉及到各地製作的應用程序內購買,因此所有的邏輯是相對自給自足的。它不需要關心其他任何事情。
現在,我希望作出這樣的活動有選擇地展示了在一個對話框中其他活動。有沒有快速的方法來做到這一點?然而,我仍然需要保持舊的行爲,其中活動顯示爲常規屏幕。
那麼,有什麼方法,我可以啓動與該活動使其顯示爲一個對話框?
謝謝
你不能將活動顯示爲對話框。
的選項有:
1:包含 「的ShowDialog」 一些布爾額外打開其他活動,真
Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra("showDialog", true);
,並在(例如)的onCreate其他活動:
Boolean showDialog = getIntent().getExtras().getBoolean("showDialog");
if (showDialog) {
// Code to show dialog
}
2:創建一個DialogFragment並將其顯示在原始活動中。這種定製DialogFragment你可以同時在活動
使用可能取決於你的活動的複雜程度如何幹淨的選擇,是創建一個基於你當前活動新DialogFragment。
DialogFragment基本上是一個Fragment,因此在您的Activity中有一組相對類似的生命週期回調,因此作爲DialogFragment重新工作應該不會太困難。
如果應用程序內購買框架具有與活動的特定回調的需求,那麼你就需要考慮到這一點。
另一個單獨的選項將是嘲笑一個對話框的外觀,通過創建可以是圍繞主內容的邊框透明一個活動。
只需在onCreate Method上單擊佈局一個按鈕。 我會提議嘗試提醒框,並在正常佈局的位置膨脹活動佈局。 這些可能有助於
做到這一點的最簡單方法是對話的主題適用於活動:
<activity android:theme="@style/Theme.AppCompat.Dialog" />
或者代碼:
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.Theme_AppCompat_Dialog);
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
}
您可以自定義主題的參數在styles.xml
,例如暗淡啓用/禁用,點擊外部行爲。
的關鍵點是super.onCreate()
之前執行setTheme()
,因爲Theme
是不可變的,一旦設置通過super.onCreate()
它以後不能突變。
這是如何工作的代碼?我無法動態地添加XML .. – user1017674
@ user1017674,已更新。 – azizbekian