Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java I';我正在尝试将ExpandableListView与自定义适配器一起使用,但无法显示任何内容_Java_Android_Hashmap_Expandablelistview - Fatal编程技术网

Java I';我正在尝试将ExpandableListView与自定义适配器一起使用,但无法显示任何内容

Java I';我正在尝试将ExpandableListView与自定义适配器一起使用,但无法显示任何内容,java,android,hashmap,expandablelistview,Java,Android,Hashmap,Expandablelistview,我正在尝试使用ExpandableListView来显示物理常数及其信息。我已经为孩子、家长和我希望列表显示的活动做了布局。我的数据存储在MyDataProvider类的HashMap中。我相信这一切都是好的,应该会起作用 我认为导致问题的部分是适配器,我自己编写并包含在下面。问题是,当我进行此活动时,应用程序不会崩溃,只是显示一个完全空白的白色屏幕。我还研究了是否有更好的信息 这是我的适配器: package com.gmd.referenceapplication; import andr

我正在尝试使用ExpandableListView来显示物理常数及其信息。我已经为孩子、家长和我希望列表显示的活动做了布局。我的数据存储在MyDataProvider类的HashMap中。我相信这一切都是好的,应该会起作用

我认为导致问题的部分是适配器,我自己编写并包含在下面。问题是,当我进行此活动时,应用程序不会崩溃,只是显示一个完全空白的白色屏幕。我还研究了是否有更好的信息

这是我的适配器:

package com.gmd.referenceapplication;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by gmd on 6/13/2016.
 */
public class MyCustomAdapter extends BaseExpandableListAdapter {

    private Context context;
    private HashMap<String,ListViewItem> constantsHashMap;
    private List<String> constantList;

    public MyCustomAdapter(Context context, HashMap<String, ListViewItem> hashMap, List<String> list){

        constantsHashMap = hashMap;
        this.context = context;
        this.constantList = list;

    }



    public View getChildView(int groupPosition,
                             int childPosition,
                             boolean isLastChild,View convertView, ViewGroup parent)  {
        String childTitle = (String) getChild(groupPosition, childPosition).toString();
        if(convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.child_layout, parent, false);
        }
        TextView childTextView = (TextView) convertView.findViewById(R.id.textViewChild);
        childTextView.setText(childTitle);
        return convertView;


    }

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

    @Override
    public int getGroupCount() {
        return 0;
    }

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

    @Override
    public String getGroup(int groupPosition) {
        return constantList.get(groupPosition);
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return constantsHashMap.get(this.constantList.get(groupPosition));
                }


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

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

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

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        String groupTitle = (String) getGroup(groupPosition);
        if (convertView == null) {
            LayoutInflater inflater =
                    (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.parent_layout, parent, false);
        }
        TextView parentTextView = (TextView) convertView.findViewById(R.id.textViewParent);
        parentTextView.setText(groupTitle);
        return convertView;
        }
    }
package com.gmd.referenceapplication;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseExpandableListAdapter;
导入android.widget.TextView;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
/**
*由gmd于2016年6月13日创建。
*/
公共类MyCustomAdapter扩展了BaseExpandableListAdapter{
私人语境;
私有HashMap constantsHashMap;
私有列表constantList;
公共MyCustomAdapter(上下文上下文、HashMap HashMap、列表){
constantsHashMap=hashMap;
this.context=上下文;
this.constantList=列表;
}
公共视图getChildView(int groupPosition,
int-childPosition,
布尔值isLastChild、视图转换视图、视图组父级){
String childTitle=(String)getChild(groupPosition,childPosition).toString();
if(convertView==null){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.child\u布局,父,false);
}
TextView-childTextView=(TextView)convertView.findViewById(R.id.textViewChild);
childTextView.setText(childTitle);
返回视图;
}
@凌驾
公共布尔值isChildSelectable(int-groupPosition,int-childPosition){
返回false;
}
@凌驾
public int getGroupCount(){
返回0;
}
@凌驾
公共整数getChildrenCount(整数组位置){
返回0;
}
@凌驾
公共字符串getGroup(int-groupPosition){
返回constantList.get(groupPosition);
}
@凌驾
公共对象getChild(int-groupPosition,int-childPosition){
返回constantsHashMap.get(this.constantList.get(groupPosition));
}
@凌驾
公共长getGroupId(int-groupPosition){
返回0;
}
@凌驾
公共长getChildId(int-groupPosition,int-childPosition){
返回0;
}
@凌驾
公共布尔表ID(){
返回false;
}
@凌驾
公共视图getGroupView(int groupPosition、布尔isExpanded、视图convertView、视图组父级){
字符串groupTitle=(字符串)getGroup(groupPosition);
if(convertView==null){
充气机=
(LayoutFlater)context.getSystemService(context.LAYOUT\u充气机\u服务);
convertView=充气机。充气(R.layout.parent\u布局,parent,false);
}
TextView parentTextView=(TextView)convertView.findViewById(R.id.textViewParent);
parentTextView.setText(groupTitle);
返回视图;
}
}
如果我将要在此处显示列表的类包括在内,它似乎也很有用:

package com.gmd.referenceapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.ListView;

import com.gmd.referenceapplication.R;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class CommonConstants extends AppCompatActivity {
    View view;

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


        MyDataProvider dp = new MyDataProvider();

        ExpandableListView view;
        view = (ExpandableListView) findViewById(R.id.expandableList);
        HashMap constantsHashMap;
        constantsHashMap = dp.getCommonMap();
        ArrayList constantsHashMapKeys = new ArrayList<String>(constantsHashMap.keySet());

        MyCustomAdapter adapter = new MyCustomAdapter(this, constantsHashMap, constantsHashMapKeys);
        view.setAdapter(adapter);










    }
}
package com.gmd.referenceapplication;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ExpandableListView;
导入android.widget.ListView;
导入com.gmd.referenceapplication.R;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.Map;
公共类CommonConstants扩展了AppCompatActivity{
视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u common\u常量);
MyDataProvider dp=新的MyDataProvider();
可扩展列表视图;
视图=(ExpandableListView)findViewById(R.id.expandableList);
HashMap-constantsHashMap;
constantsHashMap=dp.getCommonMap();
ArrayList constantsHashMapKeys=新的ArrayList(constantsHashMap.keySet());
MyCustomAdapter=新的MyCustomAdapter(this、constantsHashMap、constantsHashMapKeys);
view.setAdapter(适配器);
}
}

我在这方面做了很多研究,但我仍然不确定我做错了什么,所以我非常感谢所有的帮助。谢谢

您应该提供正确数量的组和子组,而不是0

@Override
public int getGroupCount() {
    return 0;
}

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

您应该提供正确数量的组和子组,而不是0

@Override
public int getGroupCount() {
    return 0;
}

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

您在组和子计数中返回0。此计数用于渲染组及其子级。试试这个

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

@Override
public int getChildrenCount(int groupPosition) {
    return 1; // Looks like you have only one child in each group, change this if not
}

您在组和子计数中返回0。此计数用于渲染组及其子级。试试这个

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

@Override
public int getChildrenCount(int groupPosition) {
    return 1; // Looks like you have only one child in each group, change this if not
}