findviewbyid在对话框中返回null

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

}



猛跑小猪
浏览 280回答 3
3回答

慕码人2483693

尝试这个:EditText et = (EditText)textEntryView.findViewById(R.id.username_edit);您必须告诉在哪个视图中找到ID。否则,它将尝试通过xml布局setContentView(通常在中声明onCreate)夸大视图中的ID。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java