Я ищу по темам, но пока не нашел того, что искал.Я создал настраиваемый диалог оповещения, который появляется, и я могу сделать с ним практически все.Это пользовательский диалог состоит из 3 TextViews и 3 EditText, но всякий раз, когда мне нужно получить EditText, я получаю нулевой компонент.
Из моего XML-файла
<TextView android:layout_alignParentTop="true"
android:id="@+id/txtAccName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Name"
android:textSize="23dp"
>
</TextView>
<EditText android:id="@+id/txtEditName"
android:layout_below="@+id/txtAccName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
android:maxLength="20"
>
Я пытаюсь получить поле EditText с:
EditText txtAccName = (EditText) findViewById(R.id.txtEditName);
Log.d("#############################", "txtAccName="+txtAccName.getText().toString());
Но при этом первая строка работает хорошо,второй дом вызывает сбой, и управление является нулевым.Это метод Overwrite, который я использую для создания нужного мне AlertDialog.
@Override
protected Dialog onCreateDialog(int id) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View layout = inflater.inflate(R.layout.accountdialog, (ViewGroup) findViewById(R.id.accDialog));
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setNegativeButton(android.R.string.cancel,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
builder.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
EditText txtAccName = (EditText) findViewById(R.id.txtEditName);
//EditText txtAccCur = (EditText) findViewById(R.id.txtEditCur);
//EditText txtAccCountry = (EditText) findViewById(R.id.txtEditCountry);
//DBConn db = new DBConn(Accounts.this.getApplicationContext(), "msaverdb", null, 0);
Log.d("#############################", "CALLING db.insertAccount");
Log.d("#############################", "txtAccName="+txtAccName.getText().toString());
//db.insertAccount(txtAccName.getText().toString(), txtAccCountry.getText().toString(),
// txtAccCur.getText().toString());
Accounts.this.removeDialog(ACC_DIALOG);
}
});
builder.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Accounts.this.removeDialog(ACC_DIALOG);
}
});
builder.setView(layout);
AlertDialog ad = builder.create();
return ad;
}
Любая помощь наиболее ценится.