如何将 ArrayList 数据设置到 ListView?

Posted

技术标签:

【中文标题】如何将 ArrayList 数据设置到 ListView?【英文标题】:How to set the ArrayList data in to the ListView? 【发布时间】:2011-11-09 01:15:02 【问题描述】:

我在 ArrayList 中有数据,例如:

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

现在我想将这些数据设置到 android 的 ListView 中。 请在这件事上帮助我。 我见过很多例子。但是我是否必须实现 getter setter 类来存储数据并将其显示到 ListView 中? 我只需在列表视图中显示数据列表上方并设置其 ClickEvent。 请给我一些代码来完成这样的实现。

【问题讨论】:

【参考方案1】:

试试这个代码

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





【讨论】:

【参考方案2】:

这就是例子

ArrayList yourlist = new ArrayList();

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

【讨论】:

【参考方案3】:

作为对 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));

【讨论】:

以上是关于如何将 ArrayList 数据设置到 ListView?的主要内容,如果未能解决你的问题,请参考以下文章

wpf,我给一个textbox的text绑定到一个listv.selectionitem.path,

如何将特定数据字段从 ArrayList 加载到某些 JTextFields?

如何将一个 ArrayList 的内容复制到另一个?

将arrayList数据加载到JTable中

如何将数据从 Arraylist 显示到自定义 ArrayAdapter

如何将加载的数据从Firestore保存到Arraylist