我有一个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>
对话框显示出来.但是button不起作用(应用程序崩溃) – 这很好,因为回调的onClick函数是在我的主要活动中定义的 – 对话框是一个新活动(我是对的吗?).
但我真的不知道如何在对话框中实现一个按钮 – 我认为这是技术的基本理解问题.很长的路要是继承Dialog并在那里写下所有东西 – 但还有另一种我看不到的方法吗?
解决方法:
我使用它的方式,而不是有一个开关块是使用onClickListeners为按钮:
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}
请注意,您正在从对话框中查找视图,而不是直接调用findVIEwByID,因为它将返回空指针,因为应用程序视图上不会有dialog_button.
总结以上是内存溢出为你收集整理的android – 处理自定义对话框中的按钮全部内容,希望文章能够帮你解决android – 处理自定义对话框中的按钮所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)