1

아래 (ExpandableView Adapter에서) 이미지 (iv)를 클릭하면 어떻게 그룹 ID를 얻을 수 있습니까? 사용자가 그룹 목록을 클릭하면 평소와 같이 확장하고 싶지만 사용자가 그룹 목록의 이미지를 클릭하면 다른 작업을 호출하고 SampleGroup의 ID가 필요합니다.'onClick view'를 인식하고 ExpandableView에서 'groupId'를 얻는 방법

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 
    } 
} 

답변

3

이 하나를 시도 : 다음

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(); 
    } 
};