2013-06-01 143 views
0

我在我的应用程序中创建了新的ListView,我有我的ListView,并在ActionBar中有一个按钮“添加新的”。该按钮的功能是在ListView中创建一个新项目。添加到安卓ListView新项目

我的问题是:如何在按下按钮时在我的ListView中制作新的String

+0

一个新行,你是什么意思? –

+0

检查出[此链接](http://stackoverflow.com/a/10296747) – CRUSADER

+0

是的,我的意思是一个新的行.. – AndroidFreak

回答

0

如果你的意思是:加入新的项目列出与按一下按钮, 它肯定是有界的,以你用什么样的模式是您的列表适配器。数据库,文件或运行时列表<>(); 您的列表已连接到适配器; “getViewAt”方法返回你列表视图中的每一行。

如果您使用的ListView数据库模型,你在你的按钮,点击活动运行插入脚本,数据库刷新其数据,您的ListView适配器从数据库中检索数据和它的完成。

或者,如果你仅仅使用一个简单的列表<>在适配器;你会做list.add在你的点击&适配器完成剩下的事情。

样品在vogella,使用地图作为数据建模:Listview sample

1

ListView是显示多个Views由一个Adapter管理的控件。具体来说,一个ListAdapter

您需要将一个适配器添加到您的列表视图窗口小部件,并使用该适配器将新项目添加到列表视图。

例如;您可以添加一个ArrayAdapter并在用户单击ActionBar项目时调用add方法。

Here is a tutorial on using ArrayAdapters

以最基本的形式。您可以告诉ArrayAdapter使用现有的Layout和TextView。所以添加一个字符串应该很简单。

1

基本上土特产品必须做一些这样的:

your_btn.setOnClickListener(new View.OnClickListener 
{ 
    public void onClick(View v) 
    { 
    your_custom_adapter.Add('Foo'); 
    your_custom_adapter.notifyDataSetChanged(); 
    } 
}); 

的方法实现添加在您的适配器是显而易见的,它只是增加了一个新的String你的数据结构(即:一个ArrayList)。

好运

3

这是例子,如果你只需要简单的字符串行。

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()