大家好,我有一个复选框数组数据的列表视图,用户将选择它作为下面的业余爱好预览。

兴趣爱好将显示在上面,但我被困在删除兴趣爱好,点击它的正面,而且当我选择2霍比特,然后在显示列表,它显示2次。
贝娄是预告片

另外,如果我选择了第三个爱好,那么它会显示3次,所以请帮我解决这个问题,而且如果我取消复选框,它应该从视图列表中删除,如果我点击显示列表中的任何爱好,它仍然会自动删除和取消,如果我点击保存按钮,所有的爱好都应该被选中。
请帮我修一下这是我的密码
Hobbies_Hobbies_List.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
if (!Hobbies_Hobbies_List.isItemChecked(i))
{
Hobbies_Hobbies_List.setItemChecked(i,false);
}
else
{
Object object = Hobbies_Hobbies_List.getItemAtPosition(i);
String Hobby = String.valueOf(object);
for (int j=0;j<Hobbies_Hobbies_List.getCount();j++)
{
if (Hobbies_Hobbies_List.isItemChecked(j))
{
TextView text = new TextView(HobbiesActivity.this);
text.setText(Hobby+" ");
text.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
Hobbies_Show.addView(text);
}
}
}
}
});
hobbies_save_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});发布于 2022-03-25 05:55:35
你好像没有适配器。在适配器中,您可以修改列表(添加或删除项、更改文本、颜色等)。
如果您想要创建您自己的列表,您必须为您的列表创建自己的适配器。可以删除适配器中的项。
public View getView(final int position, View view, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View rowView = inflater.inflate(resource, parent, false);
TextView textView = rowView.findViewById(R.id.textView);
CheckBox checkBox = rowView.findViewById(R.id.checkBox);
textView.setText(dataSet.get(position).myText);
checkBox.setChecked(dataSet.get(position).myBool);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
// You can remove item here
}
});
return rowView;
}为此,您需要自己的数据类型。
这里有一个示例项目:https://github.com/Asuki/SimpleListView
您还必须将移除项添加到另一个列表中(可能从适配器中)。
https://stackoverflow.com/questions/71612024
复制相似问题