Android 列表视图未按预期工作

Android listview not working as expected

我有这段代码,它最终会从数据库中填充,但为了首先让它工作,我使用了下面的代码

  ListView mListView = (ListView) getActivity().findViewById(R.id.listView);

        ArrayList<HashMap<String, Object>> items = new ArrayList<HashMap<String,Object>>( );
        HashMap<String, Object> listItem;
        listItem = new HashMap<String, Object>();
        for (int i = 0;i<=10;i++) {
            listItem.put("item", "orderTitles" + i);
            listItem.put("subitem", "orderDescriptions" + i);
            items.add(listItem);
        }
        SimpleAdapter adapter = new SimpleAdapter(getActivity(), items, R.layout.list_item_format, new String[]{"item", "subitem"}, new int[]{R.id.itemTitle, R.id.itemDescription});
        mListView.setAdapter(adapter);

问题是列表的输出只是说 OrderTitles10 和 OrderDescriptions10(列出 10 次)而不是递增计数。我做错了什么

将您的代码更改为:

 ListView mListView = (ListView) getActivity().findViewById(R.id.listView);

        ArrayList<HashMap<String, Object>> items = new ArrayList<HashMap<String,Object>>( );
        HashMap<String, Object> listItem;

        for (int i = 0;i<=10;i++) {
            listItem = new HashMap<String, Object>();
            listItem.put("item", "orderTitles" + i);
            listItem.put("subitem", "orderDescriptions" + i);
            items.add(listItem);
        }
        SimpleAdapter adapter = new SimpleAdapter(getActivity(), items, R.layout.list_item_format, new String[]{"item", "subitem"}, new int[]{R.id.itemTitle, R.id.itemDescription});
        mListView.setAdapter(adapter);

在 for 循环中初始化 listItem 以创建和添加新的 HashMap,其中两个值都在 ArrayList 中:

    for (int i = 0;i<=10;i++) {
        listItem = new HashMap<String, Object>();
        listItem.put("item", "orderTitles" + i);
        listItem.put("subitem", "orderDescriptions" + i);
        items.add(listItem);
    }

initialize listitem inside the loop and change the for loop condition like below

 for (int i = 0;i<10;i++) {
    listItem = new HashMap<String, Object>();
    listItem.put("item", "orderTitles" + i);
    listItem.put("subitem", "orderDescriptions" + i);
    items.add(listItem);
}