Używam rozwijanego widoku listy. Otrzymałem setOnChildClickListener wewnątrz metody Onceate, , ale setOnChildClickListener nie działa, szukałem rozwiązania w SO, ale nie mogę znaleźć żadnego rozwiązania. tutaj dając co zrobiłemWidok listy rozwijanej setOnChildClickListener nie działa
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;
}
}
}
proszę mi pomóc dlaczego setOnChildClickListener nie działa
W public boolean onChildClick ... return true. – TheFlash
Gdzie ustawiłeś układ swojej aktywności? 'setContentView (R.layout.main);'? – GrIsHu
@Jesbin MJ Czy zamieściłeś pełny kod? – GrIsHu