Ich habe meine ListActivity, dass, wenn Sie auf ein Element tippen, öffnet es einen Dialog, der den Benutzer nach Benutzer und Passwort fragt. Wie kann ich die ausgewählte Position aus dem Dialog erhalten?Access AdapterView von Dialog
Hier ist, wie ich die ListActivity initialisieren:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView listView = getListView();
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
showDialog(DIALOG_USER_PASSWORD);
}
});
}
Der Dialog I Pop-up ist ein einfacher Alertdialog mit 2 EditText, die ich aus einer XML-Datei aufblasen
protected Dialog onCreateDialog(int id) {
switch (id) {
...
case DIALOG_USER_PASSWORD:
LayoutInflater factory = LayoutInflater.from(this);
final View dialogView = factory.inflate(R.layout.alert_dialog_text_entry, null);
return new AlertDialog.Builder(MyListActivity.this)
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(R.string.ask_user_password)
.setView(dialogView)
.setPositiveButton(R.string.ok_text, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String userName = ((EditText) findViewById(R.id.username_edit_alert_dialog))
.getText().toString();
String password = ((EditText) findViewById(R.id.password_edit_alert_dialog))
.getText().toString();
Credentials cred = new CredentialsL1(userName, password);
/* HERE IS WHERE i NEED THE SELECTED ITEM
mId IS THE OBJECT ASSOCIATED TO THE SELECTED POSITION */
mService.connect(mId, cred);
}
})
// Cancel button
.setNegativeButton(R.string.cancel_text,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
})
.create();
}
return null;
}
Die einzig Ich bin gekommen, up with erzeugt ein neues Feld "mId" und setzt es, wenn der Benutzer auf ihn tippt und verwendet, wenn der Benutzer im Dialog auf OK klickt. Irgendeine elegantere Idee? Dank