如何将图像数组列表设置为 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;
}
}
}
}
我在捆绑包中有一个图像数组列表,在下一个片段中我有 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;
}
}
}
}