Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQLite数据库-更新RecyclerView中的行_Java_Android_Sqlite - Fatal编程技术网

Java SQLite数据库-更新RecyclerView中的行

Java SQLite数据库-更新RecyclerView中的行,java,android,sqlite,Java,Android,Sqlite,我有一个显示人员列表的RecyclerView,我还添加了一个onClickListener来循环浏览交通灯颜色。 所有这些都可以正常工作,但我正在尝试在onClickListener中设置更新查询,以更改数据库中针对该行的数据: String name = pCursor.getString(pCursor.getColumnIndex(PlayerDetails.PlayerTableEntry.COLUMN_PLAYER_NAME)); String number = pC

我有一个显示人员列表的RecyclerView,我还添加了一个onClickListener来循环浏览交通灯颜色。 所有这些都可以正常工作,但我正在尝试在onClickListener中设置更新查询,以更改数据库中针对该行的数据:

    String name = pCursor.getString(pCursor.getColumnIndex(PlayerDetails.PlayerTableEntry.COLUMN_PLAYER_NAME));
    String number = pCursor.getString(pCursor.getColumnIndex(PlayerDetails.PlayerTableEntry.COLUMN_PLAYER_NUMBER));
    Long id = pCursor.getLong(pCursor.getColumnIndex(PlayerDetails.PlayerTableEntry._ID));
    holder.playerView.setTag(id);
    holder.itemView.setTag(id);
    holder.playerView.setText(name + "\n" + number);

    int answer = pCursor.getInt(pCursor.getColumnIndex(PlayerDetails.PlayerTableEntry.COLUMN_IS_PLAYING));

    if (answer == 0) {
        holder.redView.setVisibility(View.VISIBLE);
        holder.greenView.setVisibility(View.INVISIBLE);
        holder.amberView.setVisibility(View.INVISIBLE);

    } else if (answer == 1) {
        holder.greenView.setVisibility(View.VISIBLE);
        holder.amberView.setVisibility(View.INVISIBLE);
        holder.redView.setVisibility(View.INVISIBLE);

    } else if (answer == 2) {
        holder.amberView.setVisibility(View.VISIBLE);
        holder.redView.setVisibility(View.INVISIBLE);
        holder.greenView.setVisibility(View.INVISIBLE);
    }

    holder.allTheViews[0].setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {                                                         
            ManualPlayingChange.notToPlaying(holder);
        }
    });

    holder.allTheViews[1].setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {                 
            ManualPlayingChange.notToPlaying(holder);
        }
    });

    holder.allTheViews[2].setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {                 
            ManualPlayingChange.notToPlaying(holder);
        }
    });

我想我需要将数据库传递到适配器类?然后运行更新查询,但是,有没有一种方法可以在不经过“传递”的情况下对数据库执行更新?

是的,您可以使用interface向活动注册一个接口,并将该接口传递给适配器。现在,单击时调用指定的接口方法,您将在活动中获得回调,其中您已注册/实现/异常初始化了你的界面。。现在在“活动”中,您可以调用数据库更新query@AdeelTurk谢谢你提供的信息,一个问题,你如何通过接口进入适配器?如果我的评论对你有帮助,请投票表决。