有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在不包含RecycleServiceAdapter对象的活动之外更新Recycler视图

在我的应用程序中,当用户收到要完成任务的通知时,如果他单击按钮“完成”(通知自定义为两个按钮“完成”和“取消”),则任务列表中将出现一个勾号

我使用回收器视图维护了任务列表

对于勾号,我使用了一个图像视图,我最初设置了invisibe,但希望在用户完成的选定任务中使其可见(他在通知中单击了“完成”按钮)

请帮忙

无法做到这一点


共 (1) 个答案

  1. # 1 楼答案

    我认为你没有提供足够的信息,所以我们可以尝试帮助你,但希望这能有所帮助

    首先,在哪里存储记号的状态值?如果用户关闭应用程序并再次打开,他能在don任务中看到记号吗

    就我个人而言,我不认为你可以让同一个对象在同一时间可见和不可见,这取决于图像位于列表中的哪个项目,我累了,它对我不起作用,你只能根据条件将其隐藏在整个列表中,但你可以根据recyclerview列表中每个项目的条件更改图像图标

    为了做到这一点,您需要在共享首选项中存储勾号的值(true或false),并同时存储一些独特的内容,如任务标题,当用户单击“完成”时存储它,当用户单击“取消”时将其从共享首选项中删除(如果他单击“完成”,则取消)

    然后在onBindViewHolder(MyHolder holder,int position)中的recyclerview适配器中,您可以这样调用SharedReferences:

    我假设您有名为TaskList的自定义ListItem,其中至少包含以下字段(字符串标题,布尔值done=false)

    @Override
    public void onBindViewHolder(MyHolder holder, int position) {
    
        TaskList task = myTaskData.get(position);
        SharedPreferences TaskStatus = context.getSharedPreferences("IsDone",0);
        task.setDone(TaskStatus.getBoolean("userTask" + task.getTitle(), false));
    
        if (task.done) {
            holder.tickicon.setImageResource(R.drawable.ic_on);
        }else {
            holder.tickicon.setImageResource(R.drawable.ic_off);
        }
    

    }