Gridview按钮

时间:2013-05-09 20:17:44

标签: android button 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()方法中的各个按钮位置,但我无法弄清楚如何做到这一点(或者如果有更简单的方法)。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:2)

您应该为每个按钮使用标签,您将能够区分它们。

button.setTag(Integer.valueOf(position);

在onClickListener上你只需要这样做:

Integer position = (Integer)view.getTag();