expandbale listView childItem未显示

时间:2015-10-03 20:12:07

标签: java android

我正在尝试创建可扩展的listView,当我运行应用程序标题列表显示但当我点击标题列表子项目没有显示和应用程序崩溃所以PLZ帮助我

我的应用LogCat -

java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
            at com.example.gulab.expendablelistview.myAdapter.getChildrenCount(myAdapter.java:33)
            at android.widget.ExpandableListConnector.refreshExpGroupMetadataList(ExpandableListConnector.java:563)
            at android.widget.ExpandableListConnector.expandGroup(ExpandableListConnector.java:688)
            at android.widget.ExpandableListView.handleItemClick(ExpandableListView.java:693)
            at android.widget.ExpandableListView.performItemClick(ExpandableListView.java:653)
            at android.widget.AbsListView$PerformClick.run(AbsListView.java:3042)
            at android.widget.AbsListView$3.run(AbsListView.java:3879)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5417)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

MainActivity -

public class MainActivity extends Activity {

    myAdapter myAdapter;
    HashMap <String,List<String>> child_items;
    List<String> parent_items;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        parentListData();
        childListData();
        ExpandableListView expandableListView= (ExpandableListView) findViewById(R.id.expandableListView);

        myAdapter=new myAdapter(this,parent_items,child_items);
        expandableListView.setAdapter(myAdapter);


    }

    public void parentListData() {
        parent_items=new ArrayList<>();
        parent_items.add("Action Movies");
        parent_items.add("Romantic Movies");
        parent_items.add("Comedy Movies");
    }

    public void childListData() {
        child_items=new HashMap<>();
        List<String> action=new ArrayList<>();
        action.add("aa");
        action.add("aa");
        action.add("aa");

        List<String> romantic=new ArrayList<>();
        romantic.add("aa");
        romantic.add("aa");
        romantic.add("aa");

        List<String> comedy=new ArrayList<>();
        comedy.add("aa");
        comedy.add("aa");
        comedy.add("aa");

        child_items.put(action.get(0),action);
        child_items.put(romantic.get(1),romantic);
        child_items.put(comedy.get(2),comedy);

    }

}

myAdapter -

public class myAdapter extends BaseExpandableListAdapter {

    Context context;
    List<String> parent_items;
    HashMap<String,List<String>> child_items;
    public myAdapter(Context context, List<String> parent_items, HashMap<String, List<String>> child_items)  {
        this.context=context;
        this.parent_items=parent_items;
        this.child_items=child_items;
    }

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

    @Override
    public int getChildrenCount(int groupPosition) {
        return child_items.get(parent_items.get(groupPosition)).size();
    }

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

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return child_items.get(parent_items.get(groupPosition)).get(childPosition);
    }

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

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

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

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        String text= (String) getGroup(groupPosition);
        if(convertView==null){
            LayoutInflater inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView=inflater.inflate(R.layout.parent_view,parent,false);
        }
        TextView textView= (TextView) convertView.findViewById(R.id.parent_text);
        textView.setText(text);
        return convertView;
    }

    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        String text= (String) getChild(groupPosition,childPosition);
        if(convertView==null){
            LayoutInflater inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView=inflater.inflate(R.layout.child_view,parent,false);
        }
        TextView textView= (TextView) convertView.findViewById(R.id.child_text);
        textView.setText(text);
        return convertView;
    }

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

0 个答案:

没有答案
相关问题