Я пытаюсь обработать событие onItemClick для элемента списка RecyclerView, чтобы отобразить AlertDialog при выборе элемента. Для этого я поместил обработчик щелчков в методе bindViewHolder, где у меня есть доступ к фактическому визуальному компоненту, но я все еще получаю ошибку
Unable to add window -- token null is not valid; is your activity running?
Вот мой класс ViewHolder
public class MessageViewHolder extends RecyclerView.ViewHolder {
private TextView senderTextView;
private TextView messageTextView;
private TextView dateTextView;
public MessageViewHolder(final View itemView) {
super(itemView);
senderTextView = itemView.findViewById(R.id.chatMessageSenderTW);
messageTextView = itemView.findViewById(R.id.chatMessageTW);
dateTextView = itemView.findViewById(R.id.chatMessageDateTW);
}
public void bindViewHolder(final ChatMessage chatMessage) {
senderTextView.setText(chatMessage.getSender());
messageTextView.setText(chatMessage.getMessage());
dateTextView.setText(chatMessage.getDate());
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder myDialog = new AlertDialog.Builder(v.getContext());
myDialog
.setTitle("Confirmation")
.setMessage("Please confirm the item selection")
.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
}
});
}
}
Я также проверил контекст, который v.getContext()
и не является нулевым.