Android 将 Activity 添加到带有 Intent 的对话框

Posted

技术标签:

【中文标题】Android 将 Activity 添加到带有 Intent 的对话框【英文标题】:Android add Activity to Dialog with Intent 【发布时间】:2018-12-28 04:45:15 【问题描述】:

我以前从未使用过对话框。我目前拥有的是从 RecyclerView 列表加载到新活动的 json 数据。我设法让对话框在点击时加载,但没有数据。我不确定如何更改我的 Intent 以加载新活动以将数据加载到对话框中。

我以前的 onClick 与 Intent。

public void onClick(View view) 
                //Toast.makeText(context, "Clicked", Toast.LENGTH_SHORT).show();

                Intent intent = new Intent(context,DetailActivity.class);
                intent.putExtra("url",dataMembers.posturl);
                RestActivity.tContent = dataMembers.posturl;
                context.startActivity(intent);
            

这是对话框,它打开但它是空白的。我不确定我将在何处或如何添加我的 Intent 以将数据放入对话框。

public void onClick(View view) 
                //Toast.makeText(context, "Clicked", Toast.LENGTH_SHORT).show();

                DisplayMetrics metrics = context.getResources().getDisplayMetrics();

                int DeviceTotalWidth = metrics.widthPixels;
                int DeviceTotalHeight = metrics.heightPixels;

                final Dialog dialog = new Dialog(context);
                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                dialog.setContentView(R.layout.activity_detail);
                dialog.getWindow().setLayout(DeviceTotalWidth ,DeviceTotalHeight);
                dialog.show();


                Intent intent = new Intent(context,DetailActivity.class);
                intent.putExtra("url",dataMembers.posturl);
                RestActivity.tContent = dataMembers.posturl;
                context.startActivity(intent);
            

【问题讨论】:

【参考方案1】:

您可以使用正确的主题将活动作为对话框启动。请参阅下面的主题定义示例。除非它是一个简单的是/否对话框,否则建议使用 DialogFragment。参见DialogFragment vs Dialog的讨论

<style name="CompatDialogTheme" parent="@style/Theme.AppCompat.Dialog"> <item name="android:windowActionBar">false</item> <item name="windowNoTitle">true</item> </style>

【讨论】:

以上是关于Android 将 Activity 添加到带有 Intent 的对话框的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android中将ActionBar添加到Activity

1.4 启动另一个 Activity

带有 Kotlin 的 Android - 将数据传回之前的 Activity

Android 将 FBX 或 Collada(.dae) 加载到 Android Studio Activity 中

无法将特定项目添加到 activity_main.xml

如何将值从基本适配器传递到 Android 中的 Activity