0

我正在开发一个应用程序。在我的应用程序中,我将一些信息存储在一个名为 Promo 的类中,我在其中定义了 4 个字符串,并创建了 4 个 getter 和 setter。然后我创建了另一个名为 Promotions 的类,在其中我定义了一个 Promo 数组。要将数据存储在促销模型中,我这样做:

 Promo promo = new Promo();
            promo.setName("Promozione");
            promo.setDescription("La promozione può essere spesa");
            promo.setDate("29 Lug 2013");
            promo.setImgUrl("http://www.pensando.it/wp/wp-content/uploads/2012/11/coupon.jpg");

现在,在另一个意图中,我将在 ListView 中显示字段名称,当我单击此 ListView 的项目时,我将加载另一个意图,在其中我将显示此促销的详细信息。为了在 ListView 中写入名称,我创建了一个方法,在该方法中我想从数组 Promo 中读取数据,并且我将在我的列表项中显示促销的名称。为此,我制作了一个 ListAdapter,并将类和促销数组传递给它,但它说我应该初始化数组促销。我将在这里发布我试图用来显示这些信息的代码:

方法 loadDataFromModel

private void loadDataFromModel() {

    lvTitle = (ListView) findViewById(R.id.lvTitle);

    final Promotions[] promotions;

    ListAdapter laTitle = new ListAdapter(ArchiveActivity2.class, promotions);
    lvTitle.setAdapter(laTitle);

    lvTitle.setOnClickListener(new AdapterView.OnItemClickListener() {

    });


}

ListAdapter.java

import android.content.Context;
import android.widget.ArrayAdapter;

import it.bitmama.InteracTv.R;
import it.bitmama.InteracTv.model.Promotions;

public class ListAdapter extends ArrayAdapter<Promotions> {
    public  ListAdapter(Context context, Promotions[] promotions) {
        super(context, R.layout.list_item, R.id.tvTitle, promotions);
    }
}

我也会发布我正在使用的两个类,比如模型:

促销.java

public class Promo {
    String name;
    String description;
    String imgUrl;
    String date;

    @Override
    public String toString() {
        return name.toString();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getImgUrl() {
        return imgUrl;
    }

    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }
}

促销.java

public class Promotions {
    public Promo[] promotions;
}

现在我希望你知道我想要做什么,我需要你的帮助才能正确显示这些信息。感谢您的建议

4

1 回答 1

0
  1. 创建适配器:

    私有 ArrayAdapter mAdapter;

    私人无效loadDataFromModel(){

    lvTitle = (ListView) findViewById(R.id.lvTitle);
    ArrayList<Promo> list = new ArrayList<Promo>();
    
    
    ArrayAdapter mAdapter = new ArrayAdapter(getContext() , R.id.lvTitle, list);
    lvTitle.setAdapter(mAdapter);
    
    lvTitle.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    
        }
    });
    

    }

  2. 修改适配器的成员:

    无效 onNewMember(促销促销){

    mAdapter.add(promo);
    

    }

您可以在 loadDataFromModel() 注入之前设置数组列表的成员

Promo promo = new Promo();
... set properties as wanted
list.add(promo)
于 2013-07-24T10:14:01.133 回答