我想修复我的按钮点击事件,现在我有每个按钮都反应相同。我希望每个按钮最终能做出不同的事情。我的代码目前是:Gridview按钮
@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()方法中的各个按钮位置,但我无法弄清楚如何做到这一点(或者如果有更简单的方法)。任何帮助,将不胜感激。
你已经做到了:你已经添加'SETID(位置)'。所以在你的* OnClickListener *中:使用'int position = v.getId();'。瞧,你有你的位置。 – 2013-05-14 05:33:19
只需知道你的位置int position = v.getId();像@SherifelKhatib在你的onClick()实现中提到过。 – jaga 2013-05-15 06:57:59
好吧,我明白这一点。现在,如果我在onClick中使用“位置”,我该怎么做。我编辑我的代码的方式是 – 2013-05-16 19:46:21