如何将图像数组列表设置为 6 个图像视图

How to set an arraylist of images to 6 imageviews

我在捆绑包中有一个图像数组列表,在下一个片段中我有 6 个 imageView,我想获取图像并将它们设置为 imageViews。我该怎么做?

Bundle bundle = new Bundle();
            ArrayList<Integer> list=new ArrayList<>();
            //StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i < adapter.getCheck().size(); i++) {
                Item_obj items = it.get(i);
                if (items.isSelected) {
                    list.add(items.image);
                }
            }
            bundle.putIntegerArrayList("IMAGE", list);
            info.setArguments(bundle);

            getFragmentManager().beginTransaction().replace(R.id.container, info).commit();

现在我正在获取下一个片段中的图像。

public static final String TEXT = "TEXT";

TextView dots;
EditText skills_description;
Button clear, save, languages;

CircleImageView circleImageView1, circleImageView2, circleImageView3,
        circleImageView4, circleImageView5, circleImageView6;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    mainView = inflater.inflate(R.layout.personal_info, container, false);
    init(mainView);

    Bundle bundle = getArguments();
    if (bundle != null) {
        ArrayList<Integer> s = bundle.getIntegerArrayList("IMAGE");
        if (s != null) {



        }
    }
    return mainView;
}

你看我有6个circleImageView,我想将arraylist的图片设置为这6个circleImageView。如何做到这一点?

适配器class

public class MyAdapter extends BaseAdapter {

Context ct;
LayoutInflater lInflater;
ArrayList<Item_obj> objects;
PersonalInfoFragment info = new PersonalInfoFragment();

MyAdapter(Context context, ArrayList<Item_obj> itemObj) {
    ct = context;
    objects = itemObj;
    lInflater = (LayoutInflater) ct
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
    return objects.size();
}

@Override
public Object getItem(int position) {
    return objects.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View view = convertView;
    if (view == null) {
        view = lInflater.inflate(R.layout.listview_items, parent, false);
    }

    Item_obj io = getItem_obj(position);
    ((TextView) view.findViewById(R.id.select_lang)).setText(io.language);
    ((ImageView) view.findViewById(R.id.imageView)).setImageResource(io.image);

    CheckBox cb = view.findViewById(R.id.checkbox);
    cb.setOnCheckedChangeListener(myCheckChangeList);
    cb.setTag(position);
    cb.setChecked(io.isSelected);

    return view;
}

Item_obj getItem_obj(int position) {
    return (Item_obj) getItem(position);
}

ArrayList<Item_obj> getCheck() {
    ArrayList<Item_obj> item = new ArrayList<>();
    for (Item_obj i : objects) {
        if (i.isSelected) {
            if (item.size() > 5) {
                Toast.makeText(ct, "Can't select more than 6 languages", Toast.LENGTH_SHORT).show();
                i.isSelected=false;
                break;
            } else {
                item.add(i);
            }
        }
    }
    return item;
}}

试试这个。

Bundle bundle = getArguments();
if (bundle != null) {
    ArrayList<Integer> s = bundle.getIntegerArrayList("IMAGE");
    if (s != null) {
        for(int i=0;i<s.size();i++){
             switch(i){
                 case 0 : circleImageView1.setImageResource(s.get(i));
                          break; 
                 case 1 : circleImageView2.setImageResource(s.get(i));
                          break;
                 case 2 : circleImageView3.setImageResource(s.get(i));
                          break;
                 case 3 : circleImageView4.setImageResource(s.get(i));
                          break;
                 case 4 : circleImageView5.setImageResource(s.get(i));
                          break;
                 case 5 : circleImageView6.setImageResource(s.get(i));
                          break;
                 default: break;
             }
        }
    }
}