我想創建一個帶有EditText對象的警告對話框。我需要以編程方式設置EditText的初始文本。這是我的。AlertDialog.Builder具有自定義佈局和EditText;無法訪問視圖
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
// ...Irrelevant code for customizing the buttons and title
AlertDialog alertDialog = dialogBuilder.create();
LayoutInflater inflater = this.getLayoutInflater();
alertDialog.setContentView(inflater.inflate(R.layout.alert_label_editor, null));
EditText editText = (EditText) findViewById(R.id.label_field);
editText.setText("test label");
alertDialog.show();
我需要更改哪些內容才能擁有有效的EditText對象?
[編輯]
所以,它是由user370305和其他人,我應該使用alertDialog.findViewById(R.id.label_field)指出;
不幸的是,這裏還有另一個問題。顯然,在AlertDialog上設置內容視圖會導致程序在運行時崩潰。你必須在建造者身上設置它。
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
// ...Irrelevant code for customizing the buttons and title
dialogBuilder.setView(inflater.inflate(R.layout.alert_label_editor, null));
AlertDialog alertDialog = dialogBuilder.create();
LayoutInflater inflater = this.getLayoutInflater();
EditText editText = (EditText) alertDialog.findViewById(R.id.label_field);
editText.setText("test label");
alertDialog.show();
不幸的是,當你這樣做的時候,alertDialog.findViewById(R.id.label_field);現在返回null。
[/編輯]
ü也可以做到這一點是: 'dialogBuilder.setView(R.layout.dialog_layout);' – SiavA
@SiavA這種方法是可行的唯一形式API 21. – FrenchFalcon
我一直在試圖顯示對話框,它不是在RecyclerView中工作,但這一個。 –