2011-09-02 133 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)); 
相关问题