2013-06-01 193 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()