当前位置: 首页 > 面试题库 >

Java findviewbyid在对话框中返回null

海保臣
2023-03-14
问题内容

我有一个自定义对话框,当我尝试获取EditText的值时,它返回null。

该行返回null

EditText et = (EditText)findViewById(R.id.username_edit);

这是完整的代码。

protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DIALOG_TEXT_ENTRY:
        LayoutInflater factory = LayoutInflater.from(this);
        final View textEntryView = factory.inflate(R.layout.alert_dialog_text_entry, null);
        return new AlertDialog.Builder(TicTacToe.this)
            //.setIconAttribute(android.R.attr.alertDialogIcon)
            .setTitle(getTitleText())
            .setView(textEntryView)
            .setPositiveButton("JOIN GAME", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    try
                    {
                        EditText et = (EditText)findViewById(R.id.username_edit);
                            playerName = et.getText().toString();
                    }
                    catch (Exception e)
                    {
                    }
                }
            })
            .create();
    }
    return null;
}

问题答案:

尝试这个:

EditText et = (EditText)textEntryView.findViewById(R.id.username_edit);

你必须告诉在哪个视图中找到ID。否则,它将尝试通过xml布局setContentView(通常在中声明onCreate)夸大视图中的ID。



 类似资料:
  • 目标: 将应用程序脚本函数中的数据返回到自定义电子表格HTML表单中。 问题: 脚本返回“未定义” 应用程序脚本: 电子表格超文本标记语言对话中的脚本:

  • 问题内容: 我很容易发现错误。我没有发现任何错误,但是我没有从editText中获取任何文本。请看下面的代码: activity_pwd.xml 我立即打电话给 Lock(this);* on MainActivity的 onCreate 方法 * 对数 您可以看到上面的日志,我已将edittext值与“ i”连接起来,但未返回任何值。.我尝试清除数据,卸载应用程序,清理,构建所有内容,但始终得到

  • 问题内容: 我对AngularJS相当陌生,并且从模态对话框服务返回数据时遇到问题。基本上,我复制了Dan Wahlin的服务http://weblogs.asp.net/dwahlin/archive/2013/09/18/building-an- angularjs-modal- service.aspx, 并从我的控制器调用它。 然后我有我的部分,像这样: 这个模态被这样调用: 所以我的问题

  • 在我的程序中,我同时启动一个线程和进度对话框。我想在按下“后退”后停止线程。但程序只会停止我的对话框。我尝试了以下代码: 结果是,我只能在没有任何对话框仍在工作时停止线程,如何“选择”后退操作,或者如何在对话框关闭的同时停止线程?

  • 对话框的内容不是在页面最初可见,而是在用户操作时显示额外的信息。 Toasts Materialize 提供了非常简单的方法,来弹出一些信息,同时也不会让用户感到突兀。这些 Toasts 显示的位置和大小会随着你的设备的不同而改变。 在 JavaScript 中调用 Materialize.toast() 方法来使用。 // Materialize.toast(message, displayLe

  • 对话框是一个现代GUI应用不可或缺的一部分。对话是两个人之间的交流,对话框就是人与电脑之间的对话。对话框用来输入数据,修改数据,修改应用设置等等。 输入文字 QInputDialog提供了一个简单方便的对话框,可以输入字符串,数字或列表。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this