我有一个我以前已经实施的活动。动态显示活动为对话框
它涉及到各地制作的应用程序内购买,因此所有的逻辑是相对自给自足的。它不需要关心其他任何事情。
现在,我希望作出这样的活动有选择地展示了在一个对话框中其他活动。有没有快速的方法来做到这一点?然而,我仍然需要保持旧的行为,其中活动显示为常规屏幕。
那么,有什么方法,我可以启动与该活动使其显示为一个对话框?
谢谢
我有一个我以前已经实施的活动。动态显示活动为对话框
它涉及到各地制作的应用程序内购买,因此所有的逻辑是相对自给自足的。它不需要关心其他任何事情。
现在,我希望作出这样的活动有选择地展示了在一个对话框中其他活动。有没有快速的方法来做到这一点?然而,我仍然需要保持旧的行为,其中活动显示为常规屏幕。
那么,有什么方法,我可以启动与该活动使其显示为一个对话框?
谢谢
你不能将活动显示为对话框。
的选项有:
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