【问题标题】:How to recognize 'onClick view' and get 'groupId' in ExpandableView如何在 ExpandableView 中识别“onClick 视图”并获取“groupId”
【发布时间】:2012-10-19 04:38:45
【问题描述】:

从下面的代码(在 ExpandableView 适配器中)单击图像 (iv) 后如何获取组 ID。 如果用户单击组列表,我想像往常一样展开它,但如果用户单击组列表中的图像,我想调用其他操作并且需要 SampleGroup 的 id。

public View getGroupView(int groupPosition, boolean isExpanded, View converView, ViewGroup parent){

     SampleGroup group = (SampleGroup)getGroup(groupPosition);

     if(convertView == null){
          LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          convertView = layoutInflater.inflate(R.layout.list_group, null);
     }

     ImageView iv = (ImageView)convertView.findViewById(R.id.some_iv):
     TextView tv = (TextView)convertView.findViewById(R.id.some_tv);

     iv.setImageDrawable(group.getImage());
     iv.setOnClickListener(onClickLintener);
     tv.setText(group.getText());
}


OnClickListener onClickLintener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        //How to get group id here???
    }
};

public class SampleGroup{
     private int id;
     private String name;
     private Drawable image;

     public SampleGroup(int id, String name, Drawable image){
          this.id = id;
          this.name = name;
          this.image = image;
     }

     public int getId(){
          return id;
     }

     public void setId(int id){
          this.id = id;
     }

     public String getName(){
          return name;
     }

     public void setName(String name){
          this.name = name
     }

     public Drawable getImage(){
          return image;
     }

     public void setImage(Drawable image){
          this.image = image
     }
}

【问题讨论】:

    标签: android onclick expandablelistview onclicklistener expandablelistadapter


    【解决方案1】:

    试试这个:

    public View getGroupView(int groupPosition, boolean isExpanded, View converView, ViewGroup parent){
      ......
      ImageView iv = (ImageView)convertView.findViewById(R.id.some_iv);
      iv.setTag(group.id);
    }
    

    然后

    OnClickListener onClickLintener = new OnClickListener() {
      @Override
      public void onClick(View v) {
          //How to get group id here???
          int groupId = (Integer) v.getTag();
      }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多