2011-09-02 159 views
4

我有數據在如ArrayList:如何將ArrayList數據設置爲ListView?

[android_metadata, test1, test5, test4, test2, test3, test10, test1002, abcd, zxy, re, test1001, testing, test21, test12] 

現在我想在Android的ListView中設置這樣的數據。 請幫我解決這個問題。 我見過很多例子。但我應該不得不實施getter setter類來存儲數據並將其顯示到ListView中? 我只是在數據列表上方顯示列表視圖並設置其ClickEvent。 請給我一些代碼來完成這樣的實現。

回答

14

試試這個代碼

import java.util.ArrayList; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class Start extends Activity { 

private String[] lv_arr = {}; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    // Get a handle to the list view 
    ListView lv = (ListView) findViewById(R.id.ListView01); 

    // Convert ArrayList to array 
    lv_arr = (String[]) arrayList.toArray(); 
    lv.setAdapter(new ArrayAdapter<String>(Start.this, 
      android.R.layout.simple_list_item_1, lv_arr)); 

} 


} 
6

這是例子

ArrayList yourlist = new ArrayList(); 

ArrayAdapter adapter = new ArrayAdapter<String>(context,android.R.layout.simple_list_item_1, yourlist); 
yourlistview.setAdapter(adapter); 
+1

它應該是'setAdapter' – Deepzz

0

爲補充Balaji.K的答案,你不需要String[]陣列。 您可以直接使用ArrayAdapter將ArrayList附加到ListView:

private ArrayList<String> arrayList = Arrays.asList("android_metadata", "test1", "test5", "test4", /*...*/ "test21", "test12"); 

ListView lv = (ListView) findViewById(R.id.list_view); 
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList)); 
相關問題