繁体   English   中英

Android:为什么我的按钮没有播放声音效果?

[英]Android: Why isn't my button playing its sound effect?

第一个按钮工作正常,但是当我单击第二个按钮时,什么也没有发生。 我没有收到任何错误,看不到有什么问题。

Sounds.java

package com.andrew.finnandjake;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Sounds extends Activity {
private SoundManager mSoundManager;

/** Called when the activity is first created. */

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mSoundManager = new SoundManager();
    mSoundManager.initSounds(getBaseContext());
    mSoundManager.addSound(1, R.raw.finn_whatthejugisthat);

    Button b1 = (Button)findViewById(R.id.Button1);
    b1.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            mSoundManager.playSound(1);


        }
    });
}
public void onCreate1(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mSoundManager = new SoundManager();
        mSoundManager.initSounds(getBaseContext());
        mSoundManager.addSound(2, R.raw.jake_dancingwithbabes);

        Button b2 = (Button)findViewById(R.id.Button2);
        b2.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                mSoundManager.playSound(2);
}
});
    }
}

您不能像onCreate1一样随机创建方法,它永远不会由您或Activity

这就是您所需要的:

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);

   mSoundManager = new SoundManager();
   mSoundManager.initSounds(this);
   mSoundManager.addSound(1, R.raw.finn_whatthejugisthat);
   mSoundManager.addSound(2, R.raw.jake_dancingwithbabes);

   Button b1 = (Button)findViewById(R.id.Button1);
   b1.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        mSoundManager.playSound(1);
      }
   });

   Button b2 = (Button)findViewById(R.id.Button2);
   b2.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        mSoundManager.playSound(2);
      }
   });
}

您没有在实际的OnCreate内部分配onclick侦听器。 这应该工作:

package com.andrew.finnandjake;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Sounds extends Activity {
private SoundManager mSoundManager;

/** Called when the activity is first created. */

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mSoundManager = new SoundManager();
    mSoundManager.initSounds(getBaseContext());
    mSoundManager.addSound(1, R.raw.finn_whatthejugisthat);
    mSoundManager.addSound(2, R.raw.jake_dancingwithbabes);

    Button b1 = (Button)findViewById(R.id.Button1);
    b1.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            mSoundManager.playSound(1);


        }
    });

    Button b2 = (Button)findViewById(R.id.Button2);
    b2.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            mSoundManager.playSound(2);
        }
    });
}

暂无
暂无

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

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