gpt4 book ai didi

android - 如何将 List 用于 ArrayAdapter 值(Java、Android)

转载 作者:行者123 更新时间:2023-11-30 01:08:30 26 4
gpt4 key购买 nike

我正在尝试在应用程序运行时更新 listView 项目。我可以通过使用 String[] 而不是 List 来让它工作,但我的目标是让它与 List 一起工作,这样我就可以在应用程序运行时向 listView 添加更多项目。

private List<String> items;

我已经为 MainActivity 类制作了一个列表。

ListView listView = (ListView)findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item, items);
listView.setAdapter(adapter);

这行不通。我试图与 items.ToArray() 打交道,但没有找到解决方案。尝试使用谷歌搜索,但来自谷歌的所有结果仅重定向到展示如何制作 listView 的教程,并且每个教程都基于 String[] 数组。

如果我使用以下应用程序工作正常:

private String[] items = {"Banana", "Lime"};

我想在用户使用“adapter.notifyDataSetChanged();”将项目添加到列表时实时管理项目

我是 Java 的初学者,尤其是 Android 开发方面的初学者,因此非常感谢您的帮助。

最佳答案

您有两种方法可以做到这一点:

  • 将您的列表转换为数组(您可以找到一个很好的例子 here )。
  • 创建您自己的适配器并使用 List(另一个很好的例子 here)。

第一种方法:

List<String> stockList = new ArrayList<String>();
stockList.add("stock1");
stockList.add("stock2");

String[] stockArr = new String[stockList.size()];
stockArr = stockList.toArray(stockArr);

for(String s : stockArr)
System.out.println(s);

第二种方法:

public class CustomAdapter extends BaseAdapter{   

String [] result;
Context context;
int [] imageId;
private static LayoutInflater inflater=null;

public CustomAdapter(MainActivity mainActivity, String[] prgmNameList, int[] prgmImages) {
// TODO Auto-generated constructor stub
result=prgmNameList;
context=mainActivity;
imageId=prgmImages;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
}

关于android - 如何将 List<String> 用于 ArrayAdapter 值(Java、Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38687518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com