我在网上浏览了类似的主题,但没有一个有用。
我正在尝试执行单击按钮声音的SIMPLE任务。我努力工作了几个小时,试图让代码正确,一旦看起来它会起作用,它甚至都不会运行。
它说,“不幸的是,尝试已经停止了。”并且我的LogCat文件打开时有200多条错误消息没有任何意义。
你能查看我的代码并告诉我问题是什么吗?谢谢。
package com.example.attempt;
import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
import android.view.SoundEffectConstants;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button) findViewById(R.id.muteButton);
button.setOnClickListener(this);
}
AudioManager audioManager =
(AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
public void onClick(View v) {
audioManager.playSoundEffect(SoundEffectConstants.CLICK);
}
}
答案 0 :(得分:5)
将AudioManager
方法中的onCreate
audioManager实例初始化为:
AudioManager audioManager; //<<<< declare here...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button) findViewById(R.id.muteButton);
button.setOnClickListener(this);
/// initialize here
audioManager =
(AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
}
答案 1 :(得分:1)
这个
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button) findViewById(R.id.muteButton);
button.setOnClickListener(this);
}
AudioManager audioManager =
(AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
将其更改为
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AudioManager audioManager =
(AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
Button button=(Button) findViewById(R.id.muteButton);
button.setOnClickListener(this);
}