【发布时间】:2019-10-02 18:50:15
【问题描述】:
我对 Android 开发还很陌生,我创建了我的第一个“真正的”应用程序,它执行以下操作:
- 启动 MainActivity
-
MainActivity 处理额外数据,然后显示一个扩展
Dialog的ViewDialog。ViewDialog有一个showDialog()方法,它执行以下操作来设置和显示Dialog:protected void showDialog(final Activity activity) { dialog = new Dialog(activity); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setCancelable(false); dialog.setContentView(dialog_layout); // Set background color of the dialog ConstraintLayout currentLayout = (ConstraintLayout) dialog.findViewById(R.id.Dialog); // setup of views etc ... // Finally dislay `Dialog` dialog.show(); // Method called to start a `DialogTimer` which extends `CountDownTimer` } -
MainActivity 显示
ViewDialog如下:public class MainActivity extends AppCompatActivity { private static Context appContext; private static ViewDialog notify; protected void onCreate(Bundle savedInstanceState) { // methods and processing etc... // time to display dialog notify = new ViewDialog(mParameters, mThemeHandler ); // ******************** Show dialog box ******************* notify.showDialog(activity: this); // showDialog just calls `Dialog.show()` notify.ApplyTheme(); } -
当计时器到期或用户按下按钮时,
ViewDialog将关闭,应用程序将使用以下代码完成:mButton1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CancelTimer(); activity.finishAndRemoveTask(); dialog.dismiss();
问题在于,当ViewDialog 被关闭时,我偶尔会看到一条消息,显示在 AndroidManifest 文件中设置的活动android:label。
我不确定为什么会发生这种情况,但我假设当 ViewDialog 关闭时它使用它自己的 dialog_layout 布局文件显示 MainActivity 布局的某些项目。
我摆弄了很多不同的东西并更改了代码/布局等,但我无法找到我的错误。
有哪些指针和提示可以帮助我解决这个问题? 如果需要,我很乐意提供更多详细信息。
布局和清单文件在这里:
- 清单https://pastebin.com/GL70FxGh
- activity_main.xml https://pastebin.com/qDVa0LrN
- dialog_layout.xml https://pastebin.com/RC4e6W9T
【问题讨论】:
-
当您说“显示消息”时,您到底看到了什么?
-
你能贴出对话框关闭后看到的消息的截图吗?
-
同样在你的activity_main.xml文件中你放置了主布局0dp的宽度和高度。只需将其设置为 mach_parent 即可在整个屏幕中展开。
-
@flopshot 运行 Android 5.1 和 9.0 的手机和平板电脑。顺便说一句,我也在拉斯维加斯.... :-)
-
浏览这个Link。希望你能找到有用的东西
标签: java android android-layout android-dialog