我在我的应用程序中创建了新ListView
的,我有我的ListView
,并且ActionBar
有一个按钮“添加新”。该按钮的功能是在ListView
.
我的问题是:当按钮被按下时,我怎样才能String
在我的里面做一个新的?ListView
如果您只需要简单的字符串行,这就是示例。
ListView lv = (ListView) findViewById(R.id.mylist);
String[] values = new String[] { "Android", "Linux", "OSX",
"WebOS", "Windows7", "Ubuntu", "OS/2"
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.rowlayout, R.id.restaurantname, values);
lv.setAdapter(adapter);
adapter.add("another row");
adapter.notifyDataSetChanged()
ListView
是显示多个Views
由Adapter
. 具体来说,一个ListAdapter
.
您需要将适配器添加到列表视图小部件,并使用该适配器将新项目添加到列表视图。
例如; 当用户单击 ActionBar 项时,您可以添加ArrayAdapter
并调用该方法。add
以最基本的形式。您可以告诉 ArrayAdapter 使用现有的 Layout 和 TextView。所以添加一个字符串应该很简单。
基本上你必须这样做:
your_btn.setOnClickListener(new View.OnClickListener
{
public void onClick(View v)
{
your_custom_adapter.Add('Foo');
your_custom_adapter.notifyDataSetChanged();
}
});
适配器中 Add 方法的实现是显而易见的,它只是将一个新字符串添加到您的数据结构中(即:一个 ArrayList)。
祝你好运
如果您的意思是:通过单击按钮将新项目添加到列表中,那肯定受限于您使用的列表适配器模型。一个数据库、一个文件或只是一个运行时 List<>(); 您的列表已与适配器连接;“getViewAt”方法返回列表视图中的每一行。
如果您为 listview 使用数据库模型,则在您的活动中运行插入脚本以单击按钮,数据库刷新其数据,您的 listview 适配器从 DB 检索数据并完成。
或者,如果您只是在适配器中使用简单的 List<>;您将在您的单击中执行 list.add,其余的由适配器完成。
vogella 示例,使用 Map 作为数据建模:Listview 示例