让我澄清一下。我正在为我的一类创建一个音板(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真的很新我真的不知道我在做什么/可能不理解你。
答案 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 else
或OnClickListener
循环
MediaPlayer m = MediaPlayer (pageOneSounds.this, R.raw.sound1);
m.start();