Populate listview from arraylist of objects

前端 未结 2 1034
滥情空心
滥情空心 2020-12-05 10:34

I have a listactivity which will display a list of persons name and address with data from arraylist of objects. here\'s the method to fill the listview so far..

<         


        
2条回答
  •  再見小時候
    2020-12-05 11:08

    In your activity

    AdapterPerson adbPerson;
    ArrayList myListItems  = new ArrayList();
    
    //then populate myListItems  
    
    adbPerson= new AdapterPerson (youractivity.this, 0, myListItems);
    listview.setAdapter(adbPerson);
    

    Adapter

    public class AdapterPerson extends ArrayAdapter {
        private Activity activity;
        private ArrayList lPerson;
        private static LayoutInflater inflater = null;
    
        public AdapterPerson (Activity activity, int textViewResourceId,ArrayList _lPerson) {
            super(activity, textViewResourceId, _lProducts);
            try {
                this.activity = activity;
                this.lPerson = _lPerson;
    
                inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    
            } catch (Exception e) {
    
            }
        }
    
        public int getCount() {
            return lPerson.size();
        }
    
        public Product getItem(Product position) {
            return position;
        }
    
        public long getItemId(int position) {
            return position;
        }
    
        public static class ViewHolder {
            public TextView display_name;
            public TextView display_number;             
    
        }
    
        public View getView(int position, View convertView, ViewGroup parent) {
            View vi = convertView;
            final ViewHolder holder;
            try {
                if (convertView == null) {
                    vi = inflater.inflate(R.layout.yourlayout, null);
                    holder = new ViewHolder();
    
                    holder.display_name = (TextView) vi.findViewById(R.id.display_name);
                    holder.display_number = (TextView) vi.findViewById(R.id.display_number);
    
    
                    vi.setTag(holder);
                } else {
                    holder = (ViewHolder) vi.getTag();
                }
    
    
    
                holder.display_name.setText(lProducts.get(position).name);
                holder.display_number.setText(lProducts.get(position).number);
    
    
            } catch (Exception e) {
    
    
            }
            return vi;
        }
    }
    

提交回复
热议问题