java - findviewbyid 在对话框中返回 null

标签 java android

我有一个自定义对话框,当我尝试获取 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;
}

最佳答案

就我而言: 首先我必须调用

dialog.show(),

只有在它之后我才能使用

dialog.findviewById(R.id.myID).

如果我错过了调用 show(),那么我会通过 findViewByID 得到一个空值。

关于java - findviewbyid 在对话框中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5525500/

相关文章:

android - 如何区分用户是否在谷歌播放订阅试用期?

java - 在java中单行编辑文件

java - NullPointerException - 位置 - getLatitude() 方法

Android:如何以编程方式配对蓝牙设备?

android - 如何使用Databinding实现ExoPlayer?

android - 如何获得位图的平均色调/饱和度?

java - 有没有更简单的方法来检查 if 语句中的多个变量

java - 如何在处理中删除先前绘制的 ControlP5 下拉列表

javascript - 如何在 API 中返回 Javascript 函数?

android - LinearLayout 中的 TextView 参数无法以编程方式工作