2014-12-03 2 views
0

У меня есть функция showDiaglog. Я просто хочу, когда пользователь указал флажок diaglog, а также счетчик, но у меня возникла проблема с прослушивателем. Каждый раз, когда я открываю настройки, всплывающее окно появляется дважды.Можете ли вы помочь мне со слушателем?

Сначала из-за слушателя счетчика, затем второго, потому что один из моих настроек проверен. Я сохраняю все изменения в этой настройке.

Вы можете мне помочь?

selectLanguage 
       .setOnItemSelectedListener(new OnItemSelectedListener() { 

        @Override 
        public void onItemSelected(AdapterView<?> arg0, 
          View arg1, int position, long arg3) { 
         // TODO Auto-generated method stub 

         saveSettingan(Key_Select, position); 

         if (position == 0) { 
          setDefaultLocal(); 
         } else { 
          setLocal("in"); 
         } 
         showDialog(); 
        } 

        @Override 
        public void onNothingSelected(AdapterView<?> arg0) { 
         // TODO Auto-generated method stub 

        } 
       }); 

и это один

case R.id.checkAcak: 
      saveSettingan(Key_Acak, isChecked); 
      showDialog(); 
      break; 

ответ

0

Вы можете хранить логическое значение, которое запоминает видимость диалога. Диалоговое шоу должно включать в себя следующее:

if (isDialogVisible) 
    return; 

isDialogVisible = true; 

Затем вы устанавливаете распускать слушателя, чтобы установить isDialogVisible ложь.

+0

Я использовал его, но он все еще показывает всплывающее окно. в savesetting я сохраняю его в sharedpreference. О key_acak или даже языке, когда загружается функция onCheckedChange(), одно из значений, которое загружается, отображается всплывающим окном при первой открытой настройке. im все еще не знает логики для решения этой проблемы. sory для моего плохого английского –

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