0

我在网上四处寻找类似的主题,但没有一个有用。

我正在尝试完成制作 onClick 按钮声音的简单任务。我连续工作了几个小时试图让代码正确,一旦它看起来可以工作,它甚至都不会运行。

它说:“不幸的是,尝试已停止。” 我的 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);
    }
}
4

2 回答 2

5

AudioManager将方法内的 audioManager 实例初始化onCreate为:

   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);
    }
于 2013-03-15T19:45:38.697 回答
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);
    }
于 2013-03-15T19:46:22.470 回答