使用 ArrayList 填充 ListView?

2022-08-31 09:28:22

我的应用需要使用 中的数据填充 .AndroidListViewArrayList

我这样做有困难。有人可以帮我写代码吗?


答案 1

您需要通过一个将ArrayList(或任何其他集合)调整到布局中的项目(ListView,Spinner等)来做到这一点。ArrayAdapter

这是Android开发人员指南所说的:

管理由任意对象数组支持的 A。默认情况下,此类期望提供的资源 ID 引用单个 .如果要使用更复杂的布局,请使用同时采用字段 ID 的构造函数。该字段 ID 应引用较大布局资源中的 a。ListAdapterListViewTextViewTextView

无论引用如何,它将用数组中每个对象的 填充。您可以添加自定义对象的列表或数组。重写对象的方法,以确定将为列表中的项显示哪些文本。TextViewtoString()toString()

例如,要将数组显示以外的其他内容使用,或者要让结果以外的某些数据填充视图,请重写以返回所需的视图类型。TextViewsImageViewstoString()getView(int, View, ViewGroup)

所以你的代码应该看起来像这样:

public class YourActivity extends Activity {

    private ListView lv;

    public void onCreate(Bundle saveInstanceState) {
         setContentView(R.layout.your_layout);

         lv = (ListView) findViewById(R.id.your_list_view_id);

         // Instanciating an array list (you don't need to do this, 
         // you already have yours).
         List<String> your_array_list = new ArrayList<String>();
         your_array_list.add("foo");
         your_array_list.add("bar");

         // This is the array adapter, it takes the context of the activity as a 
         // first parameter, the type of list view as a second parameter and your 
         // array as a third parameter.
         ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
                 this, 
                 android.R.layout.simple_list_item_1,
                 your_array_list );

         lv.setAdapter(arrayAdapter); 
    }
}

答案 2

教程

还要查找 ArrayAdapter 接口:

ArrayAdapter(Context context, int textViewResourceId, List<T> objects)

推荐