2014-12-03 126 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