我正在尝试修复我的按钮点击事件,现在我让每个按钮反应相同。我希望每个按钮最终做出不同的事情。我的代码目前是:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Button myButton;
if (convertView == null) {
myButton = new Button(mContext);
myButton.setLayoutParams(new GridView.LayoutParams(230, 150));
myButton.setPadding(8, 8, 8, 8);
convertView = myButton;
} else {
myButton = (Button) convertView;
}
myButton.setText(mButtons[position]);
myButton.setId(position);
myButton.setOnClickListener(new MyOnClickListener(position));
return convertView;
}
class MyOnClickListener implements OnClickListener {
private final int position;
final MediaPlayer mpButton1Click = MediaPlayer.create(mContext,
R.raw.myAudio);
public MyOnClickListener(int position) {
this.position = position;
}
public void onClick(View v) {
int position = v.getId();
if(position == 0){
mpButton1Click.start();
}
}
}
我目前正在使用媒体播放器,但这可能会改变。我知道我需要传递onClick()方法中的各个按钮位置,但我无法弄清楚如何做到这一点(或者如果有更简单的方法)。任何帮助,将不胜感激。
答案 0 :(得分:2)
您应该为每个按钮使用标签,您将能够区分它们。
button.setTag(Integer.valueOf(position);
在onClickListener上你只需要这样做:
Integer position = (Integer)view.getTag();