在本教程之后,我一直在为我的应用程序添加一个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);
希望在此明确一些。 感谢。
答案 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)
对应。