Android ExpandableListView使应用程序崩溃

时间:2015-06-01 20:37:51

标签: android expandablelistview

在本教程之后,我一直在为我的应用程序添加一个ExpandableListView:

http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/

现在,当我关注此应用程序并运行应用程序时,它会崩溃。

以下是我在MainActivity中的代码:

public class MainActivity extends FragmentActivity {

ViewPager viewpager;
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;


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

    viewpager = (ViewPager) findViewById(R.id.pager);
    PagerAdapter padapter = new PagerAdapter(getSupportFragmentManager());
        viewpager.setAdapter(padapter);

    expListView = (ExpandableListView) findViewById(R.id.lvExp);
    prepareListData();
    listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);
    expListView.setAdapter(listAdapter);

}

private void prepareListData(){
    listDataHeader = new ArrayList<String>();
    listDataChild = new HashMap<String, List<String>>();

    List<String> top250 = new ArrayList<String>();
    top250.add("250");

    List<String> test = new ArrayList<String>();
    test.add("Din mamma");

    listDataChild.put(listDataHeader.get(0), top250);
    listDataChild.put(listDataHeader.get(1), test);
}

}

这些错误并没有告诉我这么多,只是这行存在问题:

at com.hoyer_group.hoyer.MainActivity.prepareListData(MainActivity.java:53)
at com.hoyer_group.hoyer.MainActivity.onCreate(MainActivity.java:37)

第37行是:

prepareListData();

第53行是:

listDataChild.put(listDataHeader.get(0), top250);

希望在此明确一些。 感谢。

3 个答案:

答案 0 :(得分:0)

listDataChild.put(listDataHeader.get(0), top250);

您的listDataHeader中没有元素,但您尝试访问第一个元素。

答案 1 :(得分:0)

我认为您的listDataHeader列表是空的,因此,如果您尝试get任何值,它将获得Nothing,因此这是您的错误,列表中没有元素

答案 2 :(得分:0)

listDataChild.put(listDataHeader.get(0), top250);
listDataChild.put(listDataHeader.get(1), test);

您正试图从listDataHeader获取数据,并且在您向我们展示的代码中,您没有在任何地方listDataHeader.put

因此,Logcat错误有意义:

IndexOutOfBoundsException: Invalid index 0, size is 0

listDataHeader.get(0)对应。