how to add customised layout to Arrayadapter?

前端 未结 5 1075
-上瘾入骨i
-上瘾入骨i 2020-12-09 06:35

I am trying to create a ListView with customized layout. each item in the listView should look like as shown in the item.xml posted be

5条回答
  •  Happy的楠姐
    2020-12-09 07:15

    Please create your own ItemAdapter which extends ArrayAdapter<>.

    public class ItemAdapter extends ArrayAdapter {
    private int resource;
    private List items;
    
    public ItemAdapter(Context context, int resource, List items) {
        super(context, resource, items);
        this.resource = resource;
        this.items = items;
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LinearLayout itemView;
        final Item item = getItem(position);
    
        if (convertView == null) {
            itemView = new LinearLayout(getContext());
    
            LayoutInflater layoutInflater = LayoutInflater.from(getContext());
            layoutInflater.inflate(resource, itemView, true);
        }
        else {
            itemView = (LinearLayout) convertView;
        }
    

    And load your item.xml in MainActivity onCreate()

    public class MainActivity{
        private List items;
        private ItemAdapter itemAdapter;
        @Override
          protected void onCreate(Bundle savedInstanceState) {
          itemAdapter = new ItemAdapter(this, R.layout.item, items);
    

提交回复
热议问题