简体   繁体   English

Android:带有声音文件的警报对话框

[英]Android : Alert dialog with sound file

I have an alert dialog that pop ups before entering the activity. 在进入活动之前,我有一个弹出的警报对话框。 It is an alert dialog with a chechbox of Don't Show this again . 这是一个警报对话框,上面的复选框Don't Show this again I added a mp3 file that reads all terms. 我添加了一个可读取所有条款的mp3文件。 I tried all possible things, it didn't work. 我尝试了所有可能的方法,但没有成功。 Here's what i want to do. 这就是我想要做的。

  1. When I Agree button is clicked, it should stop the sound file being played. 单击I Agree按钮时,它应停止播放声音文件。

  2. When user clicks on Don't show this again CheckBox, the sound should not play after entering the activity again. 当用户单击“不再显示此复选框”时,再次进入活动后不应播放声音。

Every single clue will be deeply appriciated. 每个线索都将被深深地运用。 Thnx in advance. 提前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();

You should implement this one. 您应该实现这一点。

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;
            }
        }
    });

And click on OK button you have to dismiss your Dialog . 然后单击“ OK按钮,您必须关闭“ Dialog

Now you can check it by 现在您可以通过

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM