Android ListView项目添加和删除

时间:2016-10-09 19:19:03

标签: android android-layout listview android-fragments

当我将项目添加到列表视图时,列表视图不会显示我添加的项目。当我将项目添加到适配器时,我想在listview中看起来...但它不起作用。我的失败在哪里?有关于Listview(添加/删除/编辑)示例的任何示例吗?

适配器代码

 android.content.Context Context;
    LayoutInflater inflater;

    ArrayList<Item> Items=new ArrayList<>();



    public MyAdapter(Context Context)
    {

        this.Context=Context;

    }


    @Override
    public int getCount() {
        return Items.size();
    }

    @Override
    public Object getItem(int position) {
        return Items.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    public void AddItem(Item item)
    {
        Items.add(item);
        MyAdapter.this.notifyDataSetChanged();
    }
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        ImageButton BtnSil;
        inflater=(LayoutInflater) Context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view=inflater.inflate(R.layout.fragment_lstview,parent,false);

        BtnRemove=(ImageButton)view.findViewById(R.id.Remove);

        BtnRemove.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Urunler.remove(position);
                MyAdapter.this.notifyDataSetChanged();
            }
        });
        return view;
    }

项目添加代码

adapter.AddItem(SecilenUrun);

1 个答案:

答案 0 :(得分:0)

它应该更新。虽然重建视图是一个巨大的浪费和错误,它应该工作。最可疑的是getItemId(int position)返回0.如果视图将id视为静态,通常会导致无更新,并且屏幕上的值没有更改。通常,默认值为返回位置,或项目的一些正确的散列值。

但是,当然应该更新。尽管所有条目看起来都相同,但Urunler会为该位置调用删除。除了物品数量之外,这看起来并没有什么不同。