Android: Using Alertdialog When An Item From A Listview Is Long Pressed
Solution 1:
AlertDialog
does not wait for the selection. After you call show()
method, these two lines will be executed immediately:
if (yesOrNo == 1) {
DO SOMETHING;
}
So value of yesOrNo
variable will be its initial value.
Solution:
You can call doSomething(0)
in onClick()
method of positiveButton and doSomething(1)
in onClick()
method of negativeButton.
Solution 2:
yesOrNo is changing.But you couldn't catch it.Because AlertDialog is asynchronous it doesn't wait for the click.It execute the rest part of the scope.If you want to see the change then see the value on click on the dialog button .then you will see
Solution 3:
you cannot check the value of yesOrNo right after you have called b.show(). Just because the dialog is now shown, doesn't mean a button has been clicked. You should do your DO SOMETHING
inside the OnClickListener
or call a method from within the OnClickListener
.
Solution 4:
The following test is not at the right place:
if (yesOrNo == 1) {
DO SOMETHING;
}
It is evaluated once your dialog is created, and not once the user clicks a button. So yesOrNo
is still false
at that time, and we never DO SEOMTHING
.
DO SOMETHING
should be located in b.setPositiveButton()
's onClick()
handler.
Solution 5:
Call two separate functions in positivebutton and in negativebutton, and write the code what you want:
sample:
publicvoidonListItemClick(ListView parent, View view, int position, long id) {
b = new AlertDialog.Builder(this);
b.setMessage("Are you sure?");
b.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
publicvoidonClick(DialogInterface dialog, int whichButton) {
yes();
}
});
b.setNegativeButton("No", new DialogInterface.OnClickListener() {
publicvoidonClick(DialogInterface dialog, int whichButton) {
no();
}
});
b.show();
Toast.makeText(this, "no", Toast.LENGTH_LONG).show();
}
publicvoidyes()
{
Toast.makeText(this, "yes", Toast.LENGTH_LONG).show();
}
publicvoidno()
{
Toast.makeText(this, "no", Toast.LENGTH_LONG).show();
}
Post a Comment for "Android: Using Alertdialog When An Item From A Listview Is Long Pressed"