2016-06-27 4 views
2

У меня есть switchpreference, когда пользователь меняет значение Я должен показать диалог подтверждения и изменить значение только в том случае, если пользователь нажал кнопку «Добавить», если пользователь нажимает отрицательное значение, не следует изменять.Как реализовать диалоговое окно подтверждения для switchpreference в Android?

+0

называют подтверждение внутри onPreferenceChange –

+0

Нет, это не работает. Поскольку код после show() выполняется, и если я нажимаю отрицательную кнопку, switchpreference следует менять программно, и после этого onpreferencechange будет называться – Pein

+0

Вы нашли решение для этого? – CaptRisky

ответ

0

Я думаю, вы можете использовать диалоговое окно предупреждения для подтверждения с помощью положительных и отрицательных кнопок.

значение изменения в положительной кнопке и оставить код (ничего не делать) в отрицательной кнопке

new AlertDialog.Builder(this). 
             setTitle("title").setIcon(R.drawable.ic_launcher) 
             .setMessage(getResources().getString(R.string.message)) 
             .setPositiveButton("Yes", new DialogInterface.OnClickListener() 
             { 
              public void onClick(DialogInterface dialog, int which) { 

//change value here 
              } 
             }) .setNegativeButton("No", new DialogInterface.OnClickListener() 
           { 
            public void onClick(DialogInterface dialog, int which) { 
             // do nothing 
            } 
           }).show(); 
+0

Я попробовал, но в отрицательном клике мы должны вернуть значение, потому что оно было изменено при вызове onpreferenchechange. В результате, при отрицательном нажатии мы должны перефразировать изменения, а onpreferencehcnage будем называть – Pein

Смежные вопросы