Я хочу передать переменную во внешнюю функцию, когда пользователь нажимает «ОК» в AlertDialog. Я пытаюсь это, например, но не будет распознавать переменную (Yup).Android: Передача переменной снаружи из AlertDialog onClick
public final void deleteBookmark(Cursor cur, int pos) {
//fetching info
((Cursor) cur).moveToPosition(pos);
String bookmark_id = ((Cursor) cur).getString(((Cursor) cur).getColumnIndex(Browser.BookmarkColumns._ID));
String bookmark_title = ((Cursor) cur).getString(((Cursor) cur).getColumnIndex(Browser.BookmarkColumns.TITLE));
//asking user to approve delete request
AlertDialog alertDialog = new AlertDialog.Builder(Dmarks.this).create();
alertDialog.setTitle("Delete" + " " + bookmark_title);
alertDialog.setIcon(R.drawable.icon);
alertDialog.setMessage("Are you sure you want to delete this Bookmark?");
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
**String Yup = "yes";**
} });
alertDialog.setButton2("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Context context = getApplicationContext();
Toast.makeText(context, "canceled" , Toast.LENGTH_SHORT).show();
} });
alertDialog.show();
**if (Yup == "yes")** {
//deleting if user approved
getContentResolver().delete(Browser.BOOKMARKS_URI, "_id = " + bookmark_id, null);
//notifying user for deletion
Context context = getApplicationContext();
Toast.makeText(context, bookmark_title + " " + "deleted" , Toast.LENGTH_SHORT).show();
}
}
Я знаю, что код немного испорчен, но это только ради понимания.
Цените помощь!
Определение переменной ** Строка Угу = «да»; ** из функции «OnClick», и в этом значении функции ASSIGN для.. пример в области «// получение информации». Проверьте там: http://pastie.org/1168788 –
Спасибо за ответ. Он все равно не узнает внутренний «YUP» только внешний ... что ничего не значит в случай, который пользователь решил удалить.: \ –
Кстати, нет причин для этого: '((Курсор) cur) .moveToPosition (pos); '... просто используйте:' cur.moveToPosition (pos); '. – Cristian