如何在Listview Android中添加多个项目

Rah*_*ani 1 android listview android-layout android-adapter

我正在研究离线预订医学的Android应用程序.我已经使用了ListView for Cart,但每当我在购物车中添加新商品时,我之前的商品都会被替换.

L1 = imageacidity 
L2 = imagecough

 if(msg.toString().equals("L1")) {

       adapter = new ContactImageAdapter(this, R.layout.list, imageacidity);
       ListView dataList = (ListView) findViewById(R.id.list);
       dataList.setAdapter(adapter);
       adapter.notifyDataSetChanged();

   }
   if(msg.toString().equals("L2"))
   {

       adapter = new ContactImageAdapter(this, R.layout.list, imagecough);
       ListView dataList = (ListView) findViewById(R.id.list);
       dataList.setAdapter(adapter);
       adapter.notifyDataSetChanged();
   }
Run Code Online (Sandbox Code Playgroud)

这里我有5个元素imageacidityImagecough数组.每当我选择1个项目时,它会被添加到购物车中,但是当我尝试选择另一个项目时,它会被替换为新项目.

Luc*_*llo 5

您必须在适配器中添加元素.我将发布一个自定义适配器,并向您展示如何正确添加元素.

适配器:

public class YourAdapter extends BaseAdapter {
    List<String> itens;
    private Context mContext;
    private static LayoutInflater inflater = null;

    public YourAdapter(Context context, List<String> itens){
        this.itens = itens;
        mContext = context;
        inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public int getCount() {
        return itens.size();
    }

    public String getItem(int position) {
        return itens.get(position);
    }

    public long getItemId(int position) {
        return 0;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi = convertView;
        if (convertView == null)
            vi = inflater.inflate(R.layout.list_row, parent, false);

        String msg = itens.get(position);

        TextView tx = vi.findViewById(R.id.your_id);

        tx.setText(msg);

        return vi;
    }

    public void addItem(String item){
        itens.add(item);
    }

    public void addItens(List<String> itens){
        this.itens.addAll(itens);
    }
}
Run Code Online (Sandbox Code Playgroud)

列表显示:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        adapter = new CustomAdapter(this,yourListOfItens);

        listView = (ListView) findViewById(R.id.list_view);
        listView.setAdapter(adapter);
    }
Run Code Online (Sandbox Code Playgroud)

您可以在适配器的构造函数上设置初始数据,或者在单击按钮上使用方法addItem和addAll.