リストビューを含むダイアログを作成しました。次に、リストビューダイアログのonclicklistenerは、ユーザーに選択の確認を求める新しい内部ダイアログをロードします。
これが完了したら、外側と内側の両方のダイアログボックスを閉じたいと思います。内側のダイアログを問題なく閉じることができますが、内側からのリストビューを含む外側のダイアログを閉じる方法を見つけるのに苦労しています。
私のコードの抜粋は以下のとおりです。
// Display list of sites
AlertDialog.Builder builder = new AlertDialog.Builder(
this);
builder.setTitle("Sites Near Me");
ListView modeList = new ListView(this);
ArrayList<String> stringArrayList = new ArrayList<String>();
for (int i = 0; i < possibleLocaitons.size(); i++) {
String currentLocation = possibleLocaitons.get(i)
.getName();
stringArrayList.add(currentLocation);
}
ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1,
android.R.id.text1, stringArrayList);
modeList.setAdapter(modeAdapter);
// List click listener
modeList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent,
View view, int pos, long id) {
String site = parent.getItemAtPosition(pos)
.toString();
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
LocationActivity.this);
// set title
alertDialogBuilder.setTitle("");
// set dialog message
alertDialogBuilder
.setMessage("Check in at " + site + "?")
.setCancelable(false)
.setPositiveButton(
"Yes",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int id) {
// Update the database
UserFunctions us = new UserFunctions();
us.updateLocation(
"fish", "888");
dialog.cancel();
}
})
.setNegativeButton(
"Cancel",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int id) {
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder
.create();
// show it
alertDialog.show();
}
});
builder.setView(modeList);
final Dialog dialog = builder.create();
dialog.show();
}
どんな助けでも大歓迎です。
編集:
これが私が達成しようとしていることのスクリーンショットです:
http://dl.dropbox.com/u/57441159/Screenshot_2012-10-21-10-13-21.png
「はい」をクリックすると、「近くのサイト」と「チェックイン」の両方のダイアログをキャンセルして、バックグラウンドでマップアクティビティに戻ります。現在、「チェックイン」をキャンセルしてから「近くのサイト」に戻るだけです。これがもっと明確になることを願っています。