动态地向listView添加元素

时间:2016-08-31 11:56:45

标签: android listview

我必须在两行listView中列出String Array的所有元素。

字符串数组是动态的,可以改变大小或内容。因此,当String Array的大小为5时,例如5将显示listView元素。

你知道怎么做吗?

我已尝试过这个,但这个列表只有第一个元素:

 // wenn noch keine Standorte hinterlegt sind gibt es eine CursorIndexOutOfBoundsException
    try {
        datum_global = datenBankHelper.get_datum();
        int alle_eintraege_aller_datumsangaben = datum_global.length; // Alle Einträge von allen Datumsangaben (auch von gleichen)

        Log.d("size", "size " + alle_eintraege_aller_datumsangaben + "|" + datum_global[0]);        // z.B. 27, da 27 Einträge für alle Datumsangaben

        for(int i= 0; i < alle_eintraege_aller_datumsangaben; i++) {
            gespeicherte_routen = new String[][]{
                    {datum_global[i], "Anzahl Einträge: " + "Test"}
            };
        }

    } catch (CursorIndexOutOfBoundsException cs){

    }


    @SuppressWarnings("Convert2Diamond") ArrayList<HashMap<String, String>> list = null;

    // wenn noch keine Standorte hinterlegt sind gibt es eine NullPointerException
    try {
        list = new ArrayList<HashMap<String, String>>();


        HashMap<String, String> item;
        for (String[] routen : gespeicherte_routen) {

            Log.d("schleife3", "schleife3 " + routen[0] + "|" + routen[1] + gespeicherte_routen.length);
            //noinspection Convert2Diamond
            item = new HashMap<String, String>();
            item.put("line1", routen[0]);
            item.put("line2", routen[1]);

            list.add(item);
        }

    }catch(NullPointerException np){

    }

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

ListView需要Adapter来显示数据,而Adapter需要List(在这种情况下为字符串)。如果您更改列表中的值,则只需在notifyDataSetChanged()上调用AdapterListView就会自行更新

ListView mListView;
ArrayAdapter mAdapter;
List<String> mList;

//...

mAdapter = new ArrayAdapter(context, R.layout.something, mList);
mListView.setAdapter(adapter);

// .. 

mList.add("bla bla");
mAdapter.notifyDataSetChanged();