如何知道用户点击了哪个按钮?

时间:2014-07-10 10:51:56

标签: android button expandablelistview

我有ExpandableListView,我在此ListView的每个组上都有按钮。如何知道哪个组的按钮用户点击了什么? 当用户在这些小部件上做一些事件时,是否可以为按钮和编辑文本提供一些id并获取此ID?

2 个答案:

答案 0 :(得分:1)

您应该为listView_layout中的按钮设置ID。 您需要为listView设置Adapter。在getChildView方法中,您可以为按钮设置单击侦听器。

public class ExpandableListAdapter extends BaseExpandableListAdapter {

   @Override
   public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {

        ViewHolder holder = null;

        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.listView_layout, null);
            holder = new ViewHolder();

            holder.mButton= (ImageButton) convertView.findViewById(R.id.myButton);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }


        holder.mButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {


            }
        });
   }

   public static class ViewHolder {
      public ImageButton mButton;
   }
}

答案 1 :(得分:0)

这样做:

yourListView.setOnChildClickListener(this);

在重写方法中:

@Override
public boolean onChildClick(ExpandableListView parent, View v,
        int groupPosition, int childPosition, long id) {

    switch (groupPosition or childPosition) {
    case 0:
        // do your logic
        break;

    default:
        break;

    }

    return false;
}

您将获得GroupPosition和ChildPosition。