How to dynamically populate Android spinner with text + image

前端 未结 3 975
情话喂你
情话喂你 2020-12-01 21:04


This is what i am trying to achieve                 I am able to a

3条回答
  •  孤街浪徒
    2020-12-01 21:36

    Try this..

    public class SpinnerAdapter extends ArrayAdapter {
    
        private Context ctx;
        private String[] contentArray;
        private Integer[] imageArray;
    
        public SpinnerAdapter(Context context, int resource, String[] objects,
                Integer[] imageArray) {
            super(context,  R.layout.spinner_value_layout, R.id.spinnerTextView, objects);
            this.ctx = context;
            this.contentArray = objects;
            this.imageArray = imageArray;
        }
    
        @Override
        public View getDropDownView(int position, View convertView,ViewGroup parent) {
            return getCustomView(position, convertView, parent);
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
           return getCustomView(position, convertView, parent);
        }
    
        public View getCustomView(int position, View convertView, ViewGroup parent) {
    
            LayoutInflater inflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View row = inflater.inflate(R.layout.spinner_value_layout, parent, false);
    
            TextView textView = (TextView) row.findViewById(R.id.spinnerTextView);
            textView.setText(contentArray[position]);
    
            ImageView imageView = (ImageView)row.findViewById(R.id.spinnerImages);
            imageView.setImageResource(imageArray[position]);
    
            return row;    
        }    
    }
    

提交回复
热议问题