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