我有一个listView,有复选框,图像,文本。我需要检查一下这个listView行,当我点击下一步时,我需要在下一个片段中看到已检查的图像。
我试过这里,但那不起作用。怎么了?
我需要将数据从FragmentLanguage
传递到PersonalInfoFragment
。
public class FragmentLanguage extends Fragment {
View mainView;
ListView listView;
Button clear, next;
PersonalInfoFragment info = new PersonalInfoFragment();
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);
MyAdapter adapter = new MyAdapter(getActivity(), languages, images);
listView.setAdapter(adapter);
clear = mainView.findViewById(R.id.clear_lang);
next = mainView.findViewById(R.id.next);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < images.length; i++) {
Bundle bundle = new Bundle();
if (listView.isItemChecked(i)) {
bundle.putInt("Images", images[i]);
info.setArguments(bundle);
getFragmentManager().beginTransaction().replace(R.id.container,
new PersonalInfoFragment()).addToBackStack(null).commit();
}
}
}
});
return mainView;
}}
那是我必须检查元素并保存已检查图像的片段。
这是我需要传递已保存图像的类。
public class PersonalInfoFragment extends Fragment {
View mainView;
EditText skills_description;
Button clear, save, languages;
CircleImageView circleImageView1;
@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) {
circleImageView1.setImageResource(bundle.getInt("Images"));
}
return mainView;
}
private void init(View v) {
skills_description = v.findViewById(R.id.skills);
clear = v.findViewById(R.id.clear);
languages = v.findViewById(R.id.select_language);
save = v.findViewById(R.id.save);
circleImageView1 = v.findViewById(R.id.language1);
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
skills_description.setText("");
}
});
languages.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getFragmentManager().beginTransaction().replace(R.id.container,
new FragmentLanguage()).addToBackStack(null).commit();
}
});
}}
答案 0 :(得分:0)
首先你必须为特定位置设置setItemChecked
var Profile = require('../models/profile');
Profile.create({user: user},{include: User})
现在您可以为该职位致电 list.setOnItemClickListener(object :AdapterView.OnItemClickListener{
override fun onItemClick(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
list.setItemChecked(p2,true)
}
})
答案 1 :(得分:0)
您不应将不同的数组(语言和图像)传递给适配器。你需要 Domain / POJO Class ,它包含值和getter / setter方法。
class StudentInfo {
private String Name;
private int Image;
private boolean isSelected;
public boolean isSelected() {
return isSelected;
}
public void setSelected(boolean selected) {
isSelected = selected;
}
public StudentInfo(boolean isSelected) {
this.isSelected = isSelected;
}
public void setIsSelected(boolean isSelected) {
this.isSelected = isSelected;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getImage() {
return Image;
}
public void setImage(int Image) {
this.Image = Image;
}
public StudentInfo(String name, int Image) {
Name = name;
this.Image = Image;
}
}
您的解决方案就在这里。 请看一下Listview With Checkbox。
请问是否有任何混淆。