Android沢宇2級リスト
12223 ワード
Androidアプリを開発する際、どうしても2級リストが必要になる場合がありますが、自分のプロジェクトで使っているリストはExpandableListViewです
転送先が明記されている場合:https://mp.csdn.net/postedit/81059332
二次リストに対応するクリックイベント
転送先が明記されている場合:https://mp.csdn.net/postedit/81059332
public class ErAdapter extends BaseExpandableListAdapter {
List list;
Context context;
public ErAdapter(List list, Context context) {
this.list = list;
this.context = context;
}
//
@Override
public int getGroupCount() {
return list.size();
}
//
@Override
public int getChildrenCount(int groupPosition) {
return list.get(groupPosition).getChildren().size();
}
//
@Override
public Object getGroup(int groupPosition) {
return list.get(groupPosition);
}
//
@Override
public Object getChild(int groupPosition, int childPosition) {
return list.get(groupPosition).getChildren().get(childPosition);
}
//
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
//
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
// item
@Override
public boolean hasStableIds() {
return true;
}
//
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
GroupHolder holder;
if (convertView == null) {
convertView= LayoutInflater.from(context).inflate(R.layout.zu,null);
holder=new GroupHolder();
holder.name=convertView.findViewById(R.id.name);
convertView.setTag(holder);
}else {
holder= (GroupHolder) convertView.getTag();
}
holder.name.setText(list.get(groupPosition).getName());
return convertView;
}
//
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
ChildHolder holder;
if (convertView == null) {
convertView= LayoutInflater.from(context).inflate(R.layout.lie,null);
holder=new ChildHolder();
holder.name=convertView.findViewById(R.id.name);
holder.time=convertView.findViewById(R.id.time);
holder.size=convertView.findViewById(R.id.size);
convertView.setTag(holder);
}else {
holder= (ChildHolder) convertView.getTag();
}
holder.name.setText(list.get(groupPosition).getChildren().get(childPosition).getName());
int partDuration = list.get(groupPosition).getChildren().get(childPosition).getPartDuration();
int time = partDuration / 60;
holder.time.setText(time+" ");
holder.size.setText(list.get(groupPosition).getChildren().get(childPosition).getPartSize()+"M");
return convertView;
}
// , true
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
class GroupHolder{
TextView name;
}
class ChildHolder{
TextView name,time,size;
}
}
二次リストに対応するクリックイベント
ErAdapter erAdapter = new ErAdapter(result, getContext());
ex.setAdapter(erAdapter);
ex.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
callBack.listenter(groupPosition, childPosition);
return true;
}
});