1

我有一个显示项目列表的列表视图,底部有一个按钮。单击按钮时,我将显示一个警报对话框以获取用户的输入并将该输入添加到列表视图中。
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();
4

3 回答 3

0

是的,您可以这样做,有两个列表。

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();
于 2012-05-09T10:52:55.407 回答
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 的大小,则将对象添加到末尾。参数 index 插入对象的索引。object 要添加的对象。

投掷

IndexOutOfBoundsException  when location < 0 || > size()  

并设置列表适配器

ListName.setAdapter(new ArrayAdapter<String>
        (this,android.R.layout.simple_list_item_1 , List));
于 2012-05-09T10:57:04.957 回答
0

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

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

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

于 2012-05-09T11:07:56.610 回答