アイテムがリストビュー内でクリックされたときに開くAlertDialogを作成しようとしています。しかし、AlertDialogのコンストラクタはコンテキストを必要としますが、 "this"は無名関数を指しているため動作しません。私は "getApplicationContext()"と "getBaseContext()"を試みましたが、アプリケーションがクラッシュしました。匿名関数内のAndroid AlertDialog
アイデア?
// Open stored preferences page
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
// Load stored data key/value pairs
Map<String, String> savedData = (Map<String, String>) settings.getAll();
// Populate the list view in the activity with the stored data keys
ListView lSavedData = (ListView) findViewById(R.id.lDataList);
ArrayAdapter arrAdap = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, savedData.keySet().toArray(new String[0]));
lSavedData.setAdapter(arrAdap);
lSavedData.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// Prepare a function selection menu for when the user selects a data item
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(this);
alertBuilder.setTitle("What would you like to do?");
final CharSequence[] dialogOptions = {"Load", "Delete"};
alertBuilder.setItems(dialogOptions, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
//Toast.makeText(getApplicationContext(), dialogOptions[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog functionDialog = alertBuilder.create();
functionDialog.show();
Toast.makeText(getApplicationContext(), "Loaded " + ((TextView) arg1).getText() + " data", Toast.LENGTH_SHORT).show();
}
});
}
OMGあなたは」天才!ありがとう - それは働いた! –
@lyad K、よろしくお願いします! – Egor