【发布时间】:2015-06-07 20:20:09
【问题描述】:
我有两个按钮:分享、继续。它们都是在一个新的 XML 文件中创建的,因为我想让我的应用程序保持一个漂亮的平面 Windows 8/10 外观 GUI。
我能够显示对话框消息,但我面临的问题是,如何检查用户单击了哪个按钮:共享或继续?我无法为他们设置 onClickListener,因为这个警报对话框是在一个新文件中创建的,因此,如果我尝试这样做,它会使应用程序崩溃。
这是按钮的 XML 代码:
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/share_button"
android:layout_marginRight="5dp"
android:text="SHARE"
android:textColor="#FFFFFF"
android:textSize="16sp"
android:background="@drawable/button_blue" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/continue_button"
android:layout_marginLeft="5dp"
android:text="CONTINUE"
android:textColor="#FFFFFF"
android:textSize="16sp"
android:background="@drawable/button_green" />
以及我将其显示为警告对话框的 java 代码:
Dialog d = new Dialog(MainActivity.this);
d.requestWindowFeature(Window.FEATURE_NO_TITLE);
d.setContentView(R.layout.dialog);
d.show();
【问题讨论】:
-
我没有理解你所说的“在新文件中创建,因此,它会导致应用程序崩溃”的意思。当您尝试通过 ID
d.findViewById(R.id.continue_button);查找按钮时会发生什么? -
当我那样做时什么都不会发生。但那有什么用呢?我的意思是,如果这就是我找到按钮 ID 的方式,那么我该如何设置 onClickListener?
-
您已经有了按钮的 ID。
Dialog.findViewById()会返回一个对应的View,您可以为其设置监听器:view.setOnClickListener(...);。 -
按照 Android777 的建议初始化您的按钮。
-
完美!它奏效了,现在我明白了它是如何工作的。谢谢:)
标签: java android user-interface android-dialog flat