我一直在尝试在我的 Android 应用程序中添加按钮声音。除了 OnClick 方法与 OnClickListener 分离的 Activity 之外,它们在所有 Activity 中都运行良好:
package com.example.quizdladzieci;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class ActivityChose extends AppCompatActivity implements View.OnClickListener{
public static final String EXTRA_NUMBER = "com.example.application.example.EXTRA_NUMBER";
private Button buttonAdd;
private Button buttonMinus;
private Button buttonMultiple;
private Button buttonDivide;
private Button buttonDivide2;
public int no;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chose);
buttonAdd = (Button) findViewById(R.id.buttonAdd);
buttonMinus = (Button) findViewById(R.id.buttonMinus);
buttonMultiple = (Button) findViewById(R.id.buttonMultiple);
buttonDivide = (Button) findViewById(R.id.buttonDivide);
buttonDivide2 = (Button) findViewById(R.id.buttonDivide2);
final MediaPlayer mp = MediaPlayer.create(this, R.raw.sample);
buttonAdd.setOnClickListener(this);
buttonMinus.setOnClickListener(this);
buttonMultiple.setOnClickListener(this);
buttonDivide.setOnClickListener(this);
buttonDivide2.setOnClickListener(this);
}
public void openActivity() {
Intent intent;
if(no == 1 || no == 2){
intent = new Intent(this, CalculatorActivity.class);
intent.putExtra(EXTRA_NUMBER, no);
startActivity(intent);
} else if(no == 3){
intent = new Intent(this, ActivityMultiple.class);
intent.putExtra(EXTRA_NUMBER, no);
startActivity(intent);
} else if(no == 4){
intent = new Intent(this, ActivityDivide.class);
intent.putExtra(EXTRA_NUMBER, no);
startActivity(intent);
} else if(no == 5){
/* intent = new Intent(this, ActivityDivide2.class);
startActivity(intent);*/
}
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.buttonAdd:
no = 1;
openActivity();
break;
case R.id.buttonMinus:
no = 2;
openActivity();
break;
case R.id.buttonMultiple:
no = 3;
openActivity();
break;
case R.id.buttonDivide:
no = 4;
openActivity();
break;
case R.id.buttonDivide2:
no = 5;
openActivity();
break;
}
}
}
这是我放入 OnCreate 方法中的 mediaPlayer 行:
final MediaPlayer mp = MediaPlayer.create(this, R.raw.sample);
为了使按钮声音正常工作,我添加了以下行:
mp.start();
在通常放置在 OnClickListener 内部的 OnClick 方法中,但在这种特定情况下它不起作用,正如您在第一个代码示例中看到的那样。您能告诉我如何在不删除 case 方法的情况下重新组织代码以正确放置 mp.start();那么按钮声音可以正常工作吗?预先感谢您!
最佳答案
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
mp = MediaPlayer.create(this, R.raw.sample);
}
put mp.start();在您的 onclick() 方法中并确保原始文件夹包含示例文件。
关于java - 在Android中添加按钮声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61384872/