gpt4 book ai didi

Android - ExpandableListView 不显示任何内容

转载 作者:行者123 更新时间:2023-12-05 07:49:16 27 4
gpt4 key购买 nike

所以我刚刚进入了 ExpandableListView 领域,并希望在 DrawerLayout 中制作一个只有一组和 3 个 child 的简单列表

这是我的适配器代码:

    public class DrawerShopAdapter extends BaseExpandableListAdapter {
private Context context;
private List<String> headerTitle = new ArrayList<>();
private List<DrawerShopModel> drawerList = new ArrayList<>();

public DrawerShopAdapter(Context context, List<DrawerShopModel> dataset) {
this.context = context;
this.drawerList.addAll(dataset);
this.headerTitle.add("Toko Saya");
}

@Override
public Object getChild(int groupPosition, int childPosititon) {
return this.drawerList.get(childPosititon).drawer_txt;
}

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

@Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {

final String childText = (String) getChild(groupPosition, childPosition);

if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this.context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.drawer_shop_item, null);
}

ImageView drawerIcon = (ImageView)convertView.findViewById(R.id.drawer_shop_item_img);
OpenSansFont drawerTxt = (OpenSansFont) convertView.findViewById(R.id.drawer_shop_item_txt);

drawerIcon.setImageDrawable(context.getResources().getDrawable(drawerList.get(childPosition).drawer_image));
drawerTxt.setText(childText);
return convertView;
}

@Override
public int getChildrenCount(int groupPosition) {
return this.drawerList.size();
}

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

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

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

@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
String headerTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this.context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.drawer_shop_header, null);
}

OpenSansFont listHeader = (OpenSansFont) convertView
.findViewById(R.id.drawer_shop_header_title);
// listHeader.setTypeface(null, Typeface.BOLD);
listHeader.setText(headerTitle);

return convertView;
}

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

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

这是我的 DrawerShopModel

public class DrawerShopModel {
public int drawer_image;
public String drawer_txt;

@Override
public String toString() {
return drawer_txt;
}
}

我只是按照 MultiAutocompleteTextView 方法制作模型。

最后这是我在抽屉里的称呼:

public void setupShop(){
expandableListView.setVisibility(View.VISIBLE);
int images[] = { R.drawable.penjualan_gray, R.drawable.daftar_produk, R.drawable.keluhan_gray };
String[] names = { "Penjualan", "Daftar Produk", "Keluhan"};

List<DrawerShopModel> drawerShopModels = new ArrayList<>();

for (int i = 0; i < 3; i++){
DrawerShopModel drawerShopModel = new DrawerShopModel();
drawerShopModel.drawer_image = images[i];
drawerShopModel.drawer_txt = names[i];
drawerShopModels.add(drawerShopModel);
}

drawerShopAdapter = new DrawerShopAdapter(this.getActivity(), drawerShopModels);
expandableListView.setAdapter(drawerShopAdapter);
}

列表根本没有显示在抽屉中。我对适配器感到不满意,谁能引导我找到正确的方向?

最佳答案

如果你想在抽屉布局中获得可扩展列表,试试这种方式,这正是你要找的

public class CustomExpandableListAdapter extends BaseExpandableListAdapter {

private Context mContext;
private List<String> mExpandableListTitle;
private Map<String, List<String>> mExpandableListDetail;
private LayoutInflater mLayoutInflater;

public CustomExpandableListAdapter(Context context, List<String> expandableListTitle,
Map<String, List<String>> expandableListDetail) {
mContext = context;
mExpandableListTitle = expandableListTitle;
mExpandableListDetail = expandableListDetail;
mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public Object getChild(int listPosition, int expandedListPosition) {
return mExpandableListDetail.get(mExpandableListTitle.get(listPosition))
.get(expandedListPosition);
}

@Override
public long getChildId(int listPosition, int expandedListPosition) {
return expandedListPosition;
}

@Override
public View getChildView(int listPosition, final int expandedListPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
final String expandedListText = (String) getChild(listPosition, expandedListPosition);
if (convertView == null) {
convertView = mLayoutInflater.inflate(R.layout.list_item, null);
}
TextView expandedListTextView = (TextView) convertView
.findViewById(R.id.expandedListItem);
expandedListTextView.setText(expandedListText);
return convertView;
}

@Override
public int getChildrenCount(int listPosition) {
return mExpandableListDetail.get(mExpandableListTitle.get(listPosition))
.size();
}

@Override
public Object getGroup(int listPosition) {
return mExpandableListTitle.get(listPosition);
}

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

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

@Override
public View getGroupView(int listPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
String listTitle = (String) getGroup(listPosition);
if (convertView == null) {
convertView = mLayoutInflater.inflate(R.layout.list_group, null);
}
TextView listTitleTextView = (TextView) convertView
.findViewById(R.id.listTitle);
listTitleTextView.setTypeface(null, Typeface.BOLD);
listTitleTextView.setText(listTitle);
return convertView;
}

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

@Override
public boolean isChildSelectable(int listPosition, int expandedListPosition) {
return true;
}
}

更多请查看Expandable List in Drawer

关于Android - ExpandableListView 不显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37536496/

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