我想修復我的按鈕點擊事件,現在我有每個按鈕都反應相同。我希望每個按鈕最終能做出不同的事情。我的代碼目前是: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