2017-03-23 191 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

相关问题