【问题标题】:button action in gridview网格视图中的按钮操作
【发布时间】:2017-11-28 16:21:46
【问题描述】:

我有一个网格视图,每个网格项目中都有一个删除按钮。我的代码如下:

主要活动

...generate_photos()...

gd_view.setAdapter(new SampleGridViewAdapter(Photos.this));
                gd_view.setOnScrollListener(new SampleScrollListener(Photos.this));
                gd_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View v, int position, long id)
                    {
                        Utilities.custom_toast(Photos.this, "View big", ""+position, "short");
                    }
                });
                gd_view.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener()
                {
                    public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int position, long arg3)
                    {
                        //Utilities.custom_toast(Photos.this, "LONG Press", ""+position, "short");
                        return true;
                    }
                });

适配器

@Override public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View gridView;

        gridView =new View(context);

        gridView = inflater.inflate(R.layout.inflated_gridview, null);

        ImageView btn_delete = (ImageView) gridView.findViewById(R.id.btn_delete);
        ImageView img_grid = (ImageView) gridView.findViewById(R.id.img_grid);
        final TextView tv_ref = (TextView) gridView.findViewById(R.id.tv_ref);

        final String url = getItem(position);
        Picasso.with(context).load(url).fit().centerCrop().into(img_grid);
        tv_ref.setText(""+id.get(position));

        btn_delete.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {
                int id = Integer.parseInt(tv_ref.getText().toString());
                Records_Photo n = Select.from(Records_Photo.class).where(Condition.prop("photo_Id").eq(id)).first();
                n.delete();
            }
        });

        return gridView;

问题:

按下删除按钮后,我希望gridview刷新,使删除的图片从gridview中消失。我正在尝试调用MainActivity.generate_photo(); to refresh but it saidnon-static 方法无法从静态上下文中引用`

那么如何在按下删除按钮后刷新gridview呢?现在好像是个循环。

谢谢。

【问题讨论】:

  • 您是否从适配器列表中删除 Records_Photo 对象并使用 notifyDataSetChanged() 刷新?
  • 你试过 notifyDataSetChanged() 方法吗
  • 如果你按下删除按钮,然后关闭应用程序并再次打开它,你会得到想要的结果吗?
  • @H.Brooks:是的,如果关闭并重新打开,我会得到想要的结果。 IE。 gridview 已正确删除已删除的照片

标签: android button gridview onclicklistener


【解决方案1】:

删除图像后,您是否检查过 adapter.notifyDataSetChanged() 方法?

【讨论】:

  • 是的,我在 button_delete setOnClickListener(适配器内的那个)内尝试了 notifyDataSetChanged(),但什么也没发生。该列表不会立即刷新。还是应该放在哪里?
  • 这不是答案,可能已经发布在 cmets 部分。
猜你喜欢
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
相关资源
最近更新 更多