2014-03-29 27 views
0

我有一個警報對話框,在進入活動之前彈出窗口。這是一個警告對話框,其底線爲Don't Show this again。我添加了一個讀取所有術語的mp3文件。我嘗試了所有可能的事情,但沒有奏效。這是我想要做的。Android:帶聲音文件的警報對話框

  1. 當單擊按鈕I Agree時,應該停止正在播放的聲音文件。

  2. 當用戶點擊不再顯示此複選框時,再次進入活動後聲音不應播放。

每一條線索都會被深深的烙印。 Thnx提前。

} 

    @Override 
    protected void onResume() { 
     AlertDialog.Builder warning1 =  new AlertDialog.Builder(this); 
     LayoutInflater warning1Inflater =  LayoutInflater.from(this); 
     View myLayout = warning1Inflater.inflate(R.layout.warning_layout, null); 
     final CheckBox dontShowAgain = (CheckBox) myLayout.findViewById(R.id.skip); 
     warning1 .setCancelable(false); 
     warning1 .setView(myLayout); 
     warning1 .setTitle("Warning!"); 


     MediaPlayer mp = MediaPlayer.create(StartDialog.this,R.raw.terms); 
     mp.start(); 


    warning1 .setIcon(R.drawable.alert1); 
     warning1 .setPositiveButton("I Agree", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        String checkBoxResult = "NOT checked"; 
        if (dontShowAgain.isChecked()) 
         checkBoxResult = "checked"; 
         String PREFS_NAME = null; 
         SharedPreferences settings =  getSharedPreferences(PREFS_NAME, 0); 
         SharedPreferences.Editor editor = settings.edit(); 
        editor.putString("skipMessage", checkBoxResult); 

        editor.commit(); 

    MediaPlayer mp = MediaPlayer.create(StartDialog.this,R.raw.terms); 
     mp.stop(); 


     return; 

       } 
      }); 


      String PREFS_NAME = null; 
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
      String skipMessage = settings.getString("skipMessage", "NOT checked"); 
     if (!skipMessage.equals("checked")) 
      warning1 .show(); 

     super.onResume(); 

回答

0

你應該實現這一個。

dontShowAgain.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, 
       boolean isChecked) { 
      // TODO Auto-generated method stub 
      switch (buttonView.getId()) { 
      case R.id.checkBox: 
       checkBoxResult = "checked"; 
       String PREFS_NAME = ""; 
       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
       SharedPreferences.Editor editor = settings.edit(); 
       editor.putString("skipMessage", checkBoxResult); 
       editor.commit(); 
       break; 
      } 
     } 
    }); 

再點擊OK按鈕,您可以解僱你Dialog

現在,您可以通過

SharedPreferences sp = getSharedPreferences("PREFS_NAME", 0); 

    boolean hasBeenChecked = sp.getBoolean("skipMessage", false); 
    if (!hasBeenChecked) { 
       show your dialog here 
    } else { 
       // do your stuff here 
    } 
檢查