java-将arraylist添加到自定义listview

java-将arraylist添加到自定义listview,第1张

概述我做了一个自定义的ListView.我正在尝试通过Arraylist填充ListView.我可以成功地以字符串形式发送数据以填充ListView,但不能以ArrayList形式发送.仅显示具有arraylist的所有值的单行.主要活动publicclassMainActivityextendsActivity{ArrayList<Product>products=new

我做了一个自定义的ListVIEw.我正在尝试通过ArrayList填充ListVIEw.我可以成功地以字符串形式发送数据以填充ListVIEw,但不能以ArrayList形式发送.仅显示具有arrayList的所有值的单行.

主要活动

public class MainActivity extends Activity {ArrayList<Product> products = new ArrayList<Product>();Adapter ListvIEwAdapter;List arrList = new ArrayList();    public voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    arrList.add("1");    arrList.add("2");    fillData();       ListvIEwAdapter = new Adapter(this, products);    ListVIEw lvMain = (ListVIEw) findVIEwByID(R.ID.lvMain);    lvMain.setAdapter(ListvIEwAdapter);  }  voID fillData() {      products.add(new Product(arrList.toString(),false)); //problem is here i suppose  }}

Adapter.java

public class Adapter extends BaseAdapter {Context ctx;LayoutInflater linflater;ArrayList<Product> objects;Adapter(Context context, ArrayList<Product> products) {    ctx = context;    objects = products;    linflater = (LayoutInflater) ctx            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);}@OverrIDepublic int getCount() {    return objects.size();}@OverrIDepublic Object getItem(int position) {    return objects.get(position);}@OverrIDepublic long getItemID(int position) {    return position;}@OverrIDepublic VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {    VIEw vIEw = convertVIEw;    if (vIEw == null) {        vIEw = linflater.inflate(R.layout.item, parent, false);    }    Product p = getProduct(position);    ((TextVIEw) vIEw.findVIEwByID(R.ID.tvDescr)).setText(p.name);    CheckBox cbBuy = (CheckBox) vIEw.findVIEwByID(R.ID.cbBox);    return vIEw;}Product getProduct(int position) {    return ((Product) getItem(position));}}

产品.java

public class Product {String name;boolean selected;  Product( String items, boolean _Box) {      name = items;      selected = _Box;  }}

解决方法:

尝试通过迭代ArrayList将每个ArrayList项目添加到Product对象:

for(String row :arrList) {    products.add(new Product(row, false));}

将arrList定义为String ArrayList而不是通用类型List:

ArrayList<String> arrList = new ArrayList<String>(); 
总结

以上是内存溢出为你收集整理的java-将arraylist添加到自定义listview全部内容,希望文章能够帮你解决java-将arraylist添加到自定义listview所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1080323.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存