Android:Listview的东西

时间:2012-05-09 10:45:44

标签: android android-listview adapter

我有一个列表视图,显示项目列表和底部的按钮。点击按钮,我显示一个警报dailog框,从用户那里获取输入并将该输入添加到列表视图。
1.如何确保新的输入/输入应始终添加到列表视图的顶部? (现在它总是在底部添加)
2。是否可以将列表视图放在新条目中? (即如果新条目添加在顶部,则列表应位于顶部)
请指导我。

在onCreate()...

    list  = (ListView)findViewById(R.id.planetList); 
        adapter = new ArrayAdapter<String>(MyListViewActivity.this, 
R.layout.my_list_row, R.id.planetNameTextView); 

        for (int i = 0; i < planetNamesArray.length; i++) { 
        adapter.add(planetNamesArray[i]); 
        } 
        list.setAdapter(adapter); 

从用户那里获取输入后....

    adapter.add(newPlanetNameEnteredByUser);
    adapter.notifyDataSetChanged();

3 个答案:

答案 0 :(得分:0)

是的,你可以这样做,有两个List。

List<String> old = new ArrayList<String>();  // contains your list content
List<String> new = new ArrayList<String>(); 

现在,当您想要向ListView添加新内容时,请先将其添加到新的ArrayList,

new.add("new content");
new.addAll(old); // add all the old contents
new.setSelection(position_you_want);
adapter.notifyDataSetChanged();

答案 1 :(得分:0)

在数组列表中添加对象

ArrayList<String> List= new ArrayList<String>();
ListView ListName= (ListView)findViewById(R.id.playerdata);

 List.add(index, "value");

public void add (int index, E object) 

自:API级别1 将指定的对象插入指定位置的ArrayList中。该对象在指定位置的任何前一个元素之前插入。如果该位置等于此ArrayList的大小,则在末尾添加该对象。 参数 索引插入对象的索引。 对象要添加的对象。

抛出

IndexOutOfBoundsException  when location < 0 || > size()  

并设置列表适配器

ListName.setAdapter(new ArrayAdapter<String>
        (this,android.R.layout.simple_list_item_1 , List));

答案 2 :(得分:0)

您可以使用 listview.setStackFromBottom(false)从顶部填充列表视图。

此链接可能会对您有所帮助。

http://developer.android.com/reference/android/widget/AbsListView.html#setStackFromBottom%28boolean%29