База данных SQLite - обновить строку в RecyclerView - PullRequest
0 голосов
/ 02 мая 2018

У меня есть 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);
        }
    });

Я думаю, мне нужно передать базу данных в класс адаптера? и затем запустите запрос на обновление, но есть ли способ просто выполнить обновление базы данных, не пропуская его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...