2017-03-23 100 views
0

我有一個我以前已經實施的活動。動態顯示活動爲對話框

它涉及到各地製作的應用程序內購買,因此所有的邏輯是相對自給自足的。它不需要關心其他任何事情。

現在,我希望作出這樣的活動有選擇地展示了在一個對話框中其他活動。有沒有快速的方法來做到這一點?然而,我仍然需要保持舊的行爲,其中活動顯示爲常規屏幕。

那麼,有什麼方法,我可以啓動與該活動使其顯示爲一個對話框?

謝謝

回答

0

你不能將活動顯示爲對話框。

的選項有:

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你可以同時在活動

https://guides.codepath.com/android/Using-DialogFragment

0

使用可能取決於你的活動的複雜程度如何幹淨的選擇,是創建一個基於你當前活動新DialogFragment。

DialogFragment基本上是一個Fragment,因此在您的Activity中有一組相對類似的生命週期回調,因此作爲DialogFragment重新工作應該不會太困難。

如果應用程序內購買框架具有與活動的特定回調的需求,那麼你就需要考慮到這一點。

另一個單獨的選項將是嘲笑一個對話框的外觀,通過創建可以是圍繞主內容的邊框透明一個活動。

0

只需在onCreate Method上單擊佈局一個按鈕。 我會提議嘗試提醒框,並在正常佈局的位置膨脹活動佈局。 這些可能有助於

0

做到這一點的最簡單方法是對話的主題適用於活動:

<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()它以後不能突變。

+0

這是如何工作的代碼?我無法動態地添加XML .. – user1017674

+0

@ user1017674,已更新。 – azizbekian

相關問題