首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从android列表中删除数据

从android列表中删除数据
EN

Stack Overflow用户
提问于 2022-03-25 03:58:11
回答 1查看 68关注 0票数 0

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

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

贝娄是预告片

另外,如果我选择了第三个爱好,那么它会显示3次,所以请帮我解决这个问题,而且如果我取消复选框,它应该从视图列表中删除,如果我点击显示列表中的任何爱好,它仍然会自动删除和取消,如果我点击保存按钮,所有的爱好都应该被选中。

请帮我修一下这是我的密码

代码语言:javascript
复制
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) {

            }
        });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-25 05:55:35

你好像没有适配器。在适配器中,您可以修改列表(添加或删除项、更改文本、颜色等)。

如果您想要创建您自己的列表,您必须为您的列表创建自己的适配器。可以删除适配器中的项。

代码语言:javascript
复制
 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

您还必须将移除项添加到另一个列表中(可能从适配器中)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71612024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档