我正在处理包含listview的片段(此片段是创建活动时生成的PlaceHolderFragment)。我扩展了ArrayAdapter来制作自定义适配器,并使用此适配器填充我的列表视图。如何从ArrayAdapter中的onClickListener重新加载活动
一个重要的是在一行listview中,有2个按钮:第一个是启用/禁用按钮来改变用户的状态(当用户的状态是活动的,然后禁用,否则启用),第二个是删除按钮(删除用户)。因此,我必须在适配器的方法getView()中为此2个按钮实现OnClickListener。
当单击其中一个按钮时,它将向服务器发送请求并操作数据库(更改用户状态或从数据库中删除用户)。当我点击启用按钮(例如),它是成功和数据库中用户的状态改变,或者当我点击删除按钮,用户将成功从数据库删除
但我点击那个按钮后,它是状态不会改变(我的意思是如果用户被启用,现在该按钮必须改变为禁用,或者如果用户被删除,该行必须从屏幕上移除)。我不得不手动重新加载这个片段(切换到其他片段,然后回来)
问题是我该如何重新加载活动(我已经实现onResume加载所有数据到适配器,所以如果我可以使这个方法onResume的片段运行,它会按我的期望工作),或者至少我如何重新加载列表视图来更新新的数据?
注:notifyDataSetChanged()不起作用,因为在适配器中的数据实际上没有改变的是,只有在服务器上的数据被更改
注2:如果你需要我后我的代码,请评论,我会编辑我的帖子,因为我认为我的代码很长
谢谢,最好的问候!
编辑1 我已为我的回答下面的解决方案,它解决了问题,但我不得不说,这是在Android中一个非常非常BAD实践。例如,当您想要使用此方法删除某个项目时,可能需要为用户确认一个AlertDialog,但AlertDialog只能显示在Activity(或Fragment)中,无法从Adapter中显示。相反,您应该使用一些不同的方法,如ContextMenu或CustomDialog。
你能分享一下你试过的代码吗? – MTahir
@MTahir:谢谢你看看我的问题,但现在我终于找到了我在 –