2014-12-03 124 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为false。

+0

我用它,但它仍然显示弹出。在保存设置中,我将它保存在sharedpreference中。关于key_acak,甚至语言,当在onCheckedChange()函数中加载时,加载的值之一是在第一个打开设置中显示弹出窗口。即时通讯仍然不知道解决这个问题的逻辑。对我的英语不好 – 2014-12-03 17:15:44