gpt4 book ai didi

android - 可扩展 ListView setOnChildClickListener 不起作用

转载 作者:IT老高 更新时间:2023-10-28 23:39:03 26 4
gpt4 key购买 nike

我正在使用可扩展的 ListView 。我在一次性方法中给出了 setOnChildClickListener,但是 setOnChildClickListener 不起作用,我正在寻找 SO 中的解决方案,但找不到任何解决方案。在这里给出我所做的

  public class MenuActivity extends Activity{
ArrayList<MyObject> CatList = new ArrayList<MyObject>();
ArrayList<Object> childItem = new ArrayList<Object>();
ExpandableListView ExList;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menuactivity);

ExList=(ExpandableListView) findViewById(R.id.lvMenu) ;


ExList.setOnChildClickListener(new OnChildClickListener() {

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

ShowItem(CatList.get(childPosition).getId());

Toast.makeText(context, ""+CatList.get(childPosition).getId(), 1).show();
// TODO Auto-generated method stub
return false;
}
});

}


public void ShowItem(int id)
{
// do something
}

public class ElistAdapt extends BaseExpandableListAdapter {

public ArrayList<MyObject> groupItem, tempGrpChild;
public ArrayList<Object> Childtem = new ArrayList<Object>();
public LayoutInflater minflater;
public Activity activity;


public ElistAdapt(ArrayList<MyObject> GroupList, ArrayList<Object> childItem) {
groupItem = GroupList;
this.Childtem = childItem;
}

public void setInflater(LayoutInflater mInflater, Activity act) {
this.minflater = mInflater;
activity = act;
}

@Override
public Object getChild(int groupPosition, int childPosition) {
return null;
}

@Override
public long getChildId(int groupPosition, int childPosition) {
return 0;
}

@Override
public View getChildView(final int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
tempGrpChild = (ArrayList<MyObject>) Childtem.get(groupPosition);
TextView text = null;
TextView text2 = null;
if (convertView == null) {
convertView = minflater.inflate(R.layout.childrow, null);
}
text = (TextView) convertView.findViewById(R.id.textView1);
text2 = (TextView) convertView.findViewById(R.id.textView2);
text.setText(tempGrpChild.get(childPosition).getName());
text2.setText(tempGrpChild.get(childPosition).getPrice());

return convertView;
}

@Override
public int getChildrenCount(int groupPosition) {
return ((ArrayList<MyObject>) Childtem.get(groupPosition)).size();
}

@Override
public Object getGroup(int groupPosition) {
// return null;
return this.groupItem.get(groupPosition);
}

@Override
public int getGroupCount() {
return groupItem.size();
}

@Override
public void onGroupCollapsed(int groupPosition) {
super.onGroupCollapsed(groupPosition);
}

@Override
public void onGroupExpanded(int groupPosition) {
super.onGroupExpanded(groupPosition);
}

@Override
public long getGroupId(int groupPosition) {
return 0;
}

@Override
public View getGroupView(final int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {

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

TextView tvGroupName = (TextView) convertView.findViewById(R.id.textView1);
tvGroupName.setText(groupItem.get(groupPosition).getName());


return convertView;
}

@Override
public boolean hasStableIds() {
return false;
}

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}

}
}

请帮助我为什么 setOnChildClickListener 不起作用

最佳答案

在您的适配器类中,在 isChildSelectable() 方法中返回真值。

关于android - 可扩展 ListView setOnChildClickListener 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19425096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com