gpt4 book ai didi

android - 处理自定义对话框中的按钮

转载 作者:太空狗 更新时间:2023-10-29 15:30:19 24 4
gpt4 key购买 nike

我有一个 android 自定义对话框的小问题。

我在 onCreateDialog(int) 函数中构建了一个自定义对话框:

dialog = new Dialog(this);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Custom Dialog");

我在同一个类中有一个 onClick(View) 函数:

   public void onClick(View v) {
switch(v.getId()) {
case R.id.dialog_button:
Log.i("pma57","dialog button pressed");
break;
case R.id.main_button:
showDialog(DIALOG_CUSTOM);
break;
}
}

这是 XML 定义:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingBottom="20dp">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/enter_username" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/dialog_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="OK"
android:onClick="onClick" />

</LinearLayout>

出现对话框。但是按钮不起作用(应用程序崩溃)——这很好,因为回调的 onClick 函数是在我的主要 Activity 中定义的——并且对话框是一个新 Activity (我说的对吗?)。

但我真的不知道如何在对话框中实现按钮 - 我认为这是技术的基本理解问题。很长的路是将 Dialog 子类化并在那里编写所有内容 - 但还有另一种我看不到的方式吗?

最佳答案

我使用的方法是对按钮使用 onClickListeners,而不是使用开关 block :

dialog = new Dialog(this);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Custom Dialog");


Button dialog_btn = (Button) dialog.findViewById(R.id.dialog_button);
dialog_btn.setOnClickListener(new View.OnClickListener()
{
// Perform button logic
}

请注意,您是从对话框中查找 View ,而不仅仅是直接调用 findViewById,因为这将返回一个空指针,因为应用程序 View 上不会有 dialog_button。

关于android - 处理自定义对话框中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4113939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com