【问题标题】:Android : Alert dialog with sound fileAndroid:带有声音文件的警报对话框
【发布时间】:2014-03-29 10:57:59
【问题描述】:

我有一个在进入活动之前弹出的警告对话框。这是一个带有Don't Show this again 复选框的警告对话框。我添加了一个读取所有术语的 mp3 文件。我尝试了所有可能的事情,但没有奏效。这就是我想做的事情。

  1. I Agree按钮被点击时,它应该停止正在播放的声音文件。

  2. 当用户点击不再显示此复选框时,再次进入活动后不应播放声音。

每一条线索都会被深深地理解。提前谢谢。

   }

    @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();

【问题讨论】:

    标签: java android dialog


    【解决方案1】:

    你应该实现这个。

    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
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 2015-06-07
      • 1970-01-01
      • 2021-11-10
      相关资源
      最近更新 更多