当按下按钮时,我可以用什么方法播放mp3?

时间:2013-12-23 04:17:19

标签: java android button methods mp3

让我澄清一下。我正在为我的一类创建一个音板(android应用程序),我使用这个方法30次,每个按钮/ mp3一个

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

public class pageOneSounds extends Activity {
public void onCreate(Bundle savedState) {
    super.onCreate(savedState);
    setContentView(R.layout.pageonesounds);

final MediaPlayer pg1 = MediaPlayer.create(this, R.raw.sound1);

Button playSound1 = (Button) this.findViewById(R.id.sound1Button);

playSound1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {


    pg1.start();

    }
});

所以这个方法运行良好,但我将在这个布局上有30个带滚动视图的按钮。我想知道是否有一个我可以使用的方法,这将允许我只有一个方法,而不必复制和粘贴.setOnClickListener 30次。如果我有意义,请告诉我。对java和android真的很新我真的不知道我在做什么/可能不理解你。

5 个答案:

答案 0 :(得分:2)

在xml文件中,为每个按钮执行此操作:

<Button android:id="@+id/sound1Button"
  android:onClick="buttonClick"
  ... />
<Button android:id="@+id/sound2Button"
  android:onClick="buttonClick"
  ... />
<Button android:id="@+id/sound3Button"
  android:onClick="buttonClick"
  ... />
etc

然后在pageOneSounds活动中,执行以下操作:

public void buttonClick(View v) {
  switch(v.getId()) {
    case R.id.sound1Button:
    // do what u want here for button 1
    break;
    case R.id.sound2Button:
    // do what u want here for button 2
    break;
    case R.id.sound3Button:
    // do what u want here for button 3
    break;
    // etc
  }
}

答案 1 :(得分:1)

你能做的是

制作课程implements OnClickListener

@Override
public void onClick(View view) {
    switch(view.getId())
    {
    case R.id.button1:
    {
        break;
    }
    case R.id.button2:
    {
        finish();
    }
           // define your working of button 
    }

}

别忘了设置button1.setOnClickListener(this)

答案 2 :(得分:0)

如果我正确理解您的问题,您希望将OnClickListener保存到变量中,以便将其传递给所有setOnClickListener()个来电?这可以通过为任何其他类型创建变量来实现。

View.OnClickListener playSoundListener = new View.OnClickListener(){
    @Override
    public void onClick(View v){
        pg1.start();
    }
};

然后将其传递给setOnClickListener(),如此:

playSound1.setOnClickListener(playSoundListener);

答案 3 :(得分:0)

实施OnClickListener然后使用切换案例或在onClick() 中编写你的mp3播放方法(如果你没有任何其他功能键)

public class pageOneSounds extends Activity implements View.OnClickListener{
    final MediaPlayer pg1;
    Button playSound1;
    @Override
    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);
        setContentView(R.layout.pageonesounds);
        pg1 = MediaPlayer.create(this, R.raw.sound1);
        playSound1 = (Button) this.findViewById(R.id.sound1Button);
        playSound1.setOnClickListener(this);
   }

    @Override
    public void onClick(View v) {
        pg1.start();
    }
}

答案 4 :(得分:0)

您可以创建一个返回MediaPlayer Object的方法。点击按钮即可开始播放声音。

public static MediaPlayer (Context context,int Idofmediaplayer) {
    MediaPlayer pg1 = MediaPlayer.create(context, Idofmediaplayer);
    return pg1;
}

Switch case方法

中使用if elseOnClickListener循环
MediaPlayer m = MediaPlayer (pageOneSounds.this, R.raw.sound1);
m.start();