在AVD中播放声音

时间:2013-04-02 11:03:14

标签: android

我正在开发一个项目,我需要创建一些Button s,点击后会播放一​​些音调。这是我使用的代码

package com.entrainment.www;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

Button mButtonOne;
Button mButtonTwo;
MediaPlayer mp;
MediaPlayer mp1; 


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mp=MediaPlayer.create(this, R.raw.tone_1);
    mp1=MediaPlayer.create(this, R.raw.tone_2);

    mButtonOne = (Button)findViewById(R.id.button1);
    mButtonTwo = (Button)findViewById(R.id.button2);
    mButtonOne.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v){
            mp.start();
        }
    }); 

    mButtonTwo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v){
            mp1.start();
        }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

我已经运行了AVD并且一切正常,但是当我点击按钮时,没有任何反应。

1 个答案:

答案 0 :(得分:0)

因为您要设置两次内容。

 setContentView(R.layout.activity_main);

通话会使您的布局膨胀。

每当您第二次设置新副本时,

mButtonOnemButtonTwo是第一个inflatted布局的实例,但您的当前视图是第二个inflatted布局。                简单地说你在屏幕上看到的按钮是不同的,因为它们属于第二种布局。因此,您点击了没有设置任何操作的按钮。

所以第二次删除setContentView(R.layout.activity_main);