我有一个包含多个成员的Listview,每个成员由5个项目组成
这5项中的一项是一个名为"delete_item"的Imageview,它可以删除它所属的成员(如果用户长时间点击它(
当用户长时间点击"delete_item"时,我打开一个由两个项目组成的弹出菜单,以便用户选择其中一个:
1-垃圾图像视图
2-返回图像视图
如果用户单击trash Imageview,则该成员将被删除,如果用户单击返回项,则不会发生任何事情,而是如下所示关闭对话框:
popupWindow.dismiss();
我必须将"活动"从Listview适配器传递到用于通货膨胀的弹出类:
LayoutInflater inflater = (LayoutInflater) myActivity.getSystemService(LAYOUT_INFLATER_SERVICE);
一切都很好,但有两个问题如下:
问题1-将Activity作为参数首先发送到Listview的自定义适配器,然后第二次发送到从该适配器调用的弹出类,这是真的吗?
问题2-当用户点击垃圾图片视图并删除该成员时,我重新指定弹出菜单所属的活动,指定我们所处的相同活动是真的吗?
您可以简单地通过任何上下文获取LayoutInflater
。
您可以从任何视图获取上下文。比如
Context ctx=view.getContext();
LayoutInflater inflater= ((AppCompatActivity)ctx).getLayoutInflater();
或者,如果您有任何Container对象,那么只需通过以下方式获取:container.getLayoutInflater();
除了Insane Developer,还有第二个问题的答案:
适配器中应该有一个名为notifyDataSetChanged((的方法来重新绘制ListView。这比重新开始活动要好得多。