Tworzę okno niestandardowy zawierający EditText tak, że mogę dostać dane tekstowe od użytkownika:Dialog Problem: requestFeature() musi być wywołana przed dodaniem zawartości
final EditText newKey = (EditText) findViewById(R.id.dialog_result);
AlertDialog.Builder keyBuilder = new AlertDialog.Builder(StegDroid.this);
keyBuilder
.setCancelable(false)
.setPositiveButton("Try Again", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Log.v("Dialog","New Key: "+newKey.getText().toString());
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog dialog = keyBuilder.create();
dialog.setTitle("Decryption Failed");
dialog.setContentView(R.layout.decrypt_failed_dialog);
dialog.show();
Jednak zawsze otrzymuję ten wyjątek:
01-11 18:49:00.507: ERROR/AndroidRuntime(3461): android.util.AndroidRuntimeException: requestFeature() must be called before adding content
01-11 18:49:00.507: ERROR/AndroidRuntime(3461): at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:181)
01-11 18:49:00.507: ERROR/AndroidRuntime(3461): at com.android.internal.app.AlertController.installContent(AlertController.java:199)
01-11 18:49:00.507: ERROR/AndroidRuntime(3461): at android.app.AlertDialog.onCreate(AlertDialog.java:251)
...
na linii dialog.show()
. Co powinienem zrobić, aby się tego pozbyć?
Byłoby miło dodać komentarz, aby ktoś inny mógł łatwo dowiedzieć się, co zostało zrobione inaczej, bez konieczności porównywania kodu. – codinguser
Masz rację ... Nie mam teraz czasu. Czy mógłbyś edytować odpowiedź, aby była bardziej precyzyjna? – Cristian
Dzięki! Uratowałeś mi dzień za pomocą "... musisz użyć polecenia setView (View) zamiast setContentView() ..." :) –