我有listView,还有复选框,imageView,TextView。我想传递那些在listView中检查过的图像。我知道这是在做捆绑,但如何做复选框部分?我有复选框,但我不知道如何初始化它。
这是适配器部分。
public class MyAdapter extends ArrayAdapter<MyAdapter> {
String names[];
int flags[];
Context mContext;
public MyAdapter(Context context, String[] languageNames, int[] countryFlags) {
super(context, R.layout.listview_items);
this.names = languageNames;
this.flags = countryFlags;
this.mContext = context;
}
@Override
public int getCount() {
return names.length;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder mViewHolder = new ViewHolder();
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.listview_items, parent, false);
mViewHolder.mFlag = convertView.findViewById(R.id.imageView);
mViewHolder.mLanguage = convertView.findViewById(R.id.textView);
convertView.setTag(mViewHolder);
} else {
mViewHolder = (ViewHolder) convertView.getTag();
}
mViewHolder.mFlag.setImageResource(flags[position]);
mViewHolder.mLanguage.setText(names[position]);
return convertView;
}
static class ViewHolder {
ImageView mFlag;
TextView mLanguage;
}}
你看到只有图像和文本视图。如何在那里添加复选框?
这是listView部分。
public class FragmentLanguage extends Fragment {
View mainView;
ListView listView;
Context mContext;
Button next;
MyAdapter adapter;
ArrayList<Integer> mItems = new ArrayList<>();
int[] images = {R.drawable.download,
R.drawable.download,
R.drawable.download,
R.drawable.download,
R.drawable.download,
R.drawable.download,
R.drawable.download,
R.drawable.download};
String[] languages = {"Armenian", "Russian", "US English", "Portugal",
"Spanish", "Georgian", "French", "Italian"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mainView = inflater.inflate(R.layout.listview, container, false);
listView = mainView.findViewById(R.id.list_view);
listView.setAdapter(adapter);
adapter = new MyAdapter(getActivity(), languages, images);
listView.setAdapter(adapter);
next = mainView.findViewById(R.id.next);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
return mainView;
}}
1)如何添加复选框部分? 2)如何将这个片段的图像发送到另一个带有bundle的片段?谢谢。我将在这里编写捆绑部分
next.setOnClickListener(new View.OnClickListener()
答案 0 :(得分:0)
选项1:
列出Int val listOfSelectedImages = arrayListOf()
checkBox.setOnClickListener {
if (checkBox.isChecked) {
//when checked add image(example R.id.image1) to list
} else {
//remove from the list
}
}
从一个片段到另一个片段:
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
val mFragment2 = Fragment2()
val bundle = Bundle()
bundle.putParcelableArrayList(KEY, listOfSelectedImages)
mFragment2.arguments = bundle
supportFragmentManager.beginTransaction().add(R.id.fragment_container, mFragment2)
.commit()
}
});
片段2中的转到val list = getArguments.getParcelableArrayList(KEY)