Я работаю над приложением для ресторанов, в моей основной деятельности есть recyclerview с Firestore, заполненный базой данных в реальном времени, когда я нажимаю на карту, он активирует onitemclicklistener mListener, все это в моем адаптере ресторана, в основном У меня есть адаптер.setOnItemClickListener, который передает позицию и намерение активности ресторана.
Клик работает, он переносит меня к активности ресторана, но проблема возникает, когда я возвращаюсь от активности ресторана к основной деятельности.
Я пробовал использовать onbindingadapterposition, и все, но ничего, ошибка все еще есть
E FATAL EXCEPTION: main
Процесс: com.example.prueba2, PID: 10188
java.lang.IndexOutOfBoundsException: обнаружено несоответствие. Неверный адаптер держателя представления, позицияresviewHolder{39ee2cb позиция=9 id=-1, oldPos=3, pLpos:3 Scrap [attachedScrap] tmpDetached без родительского элемента} androidx.recyclerview.widget.RecyclerView{7873f72 VFED..... ..... .Я. 3,3-1077,2208 #7f0801a2 приложение:id/recview}, адаптер:com.example.prueba2.adapter.RestaurantAdapter@966b36b, макет:androidx.recyclerview.widget.LinearLayoutManager@e16efc3, контекст:com.example.prueba2. MainActivity@2c5755a
в адаптере:
private OnItemClickListener mListener;
public interface OnItemClickListener {
void onItemClick(int position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
mListener = listener;
}
protected void onBindViewHolder(@NonNull resviewHolder holder,int position,@NonNull Restaurant model) {
holder.name.setText(model.getName());
holder.phone.setText(model.getPhone());
holder.address.setText(model.getAddress());
holder.category.setText(model.getCategory());
holder.averageRating.setRating(model.getAverageRating());
// Carga la imagen del restaurante utilizando Glide
Glide.with(holder.itemView.getContext())
.load(model.getPhotoUrl())
.into(holder.imageView);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int clickedPosition;
if (mListener != null) {
int adapterPosition = holder.getBindingAdapterPosition();
if (adapterPosition != RecyclerView.NO_POSITION) {
clickedPosition = adapterPosition;
} else {
// Se getBindingAdapterPosition() restituisce NO_POSITION, non fare nulla
return;
}
mListener.onItemClick(clickedPosition);
}
}
});
}
public int getItemCount() {
return super.getItemCount();
}
и основная деятельность:
`
adapter.setOnItemClickListener(new RestaurantAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
// Ottieni il ristorante dalla posizione selezionata
Restaurant selectedRestaurant = adapter.getItem(position);
if (selectedRestaurant != null) {
// Avvia l'attività ViewRestaurantActivity passando i dati del ristorante come extra
Intent intent = new Intent(MainActivity.this, ViewRestaurantActivity.class);
intent.putExtra("restaurant_name", selectedRestaurant.getName());
intent.putExtra("restaurant_phone", selectedRestaurant.getPhone());
intent.putExtra("restaurant_address", selectedRestaurant.getAddress());
intent.putExtra("restaurant_category", selectedRestaurant.getCategory());
intent.putExtra("restaurant_photoUrl", selectedRestaurant.getPhotoUrl());
intent.putExtra("restaurant_cordX", selectedRestaurant.getCordX());
intent.putExtra("restaurant_cordY", selectedRestaurant.getCordY());
intent.putExtra("rating_avg", selectedRestaurant.getAverageRating());
startActivity(intent);
} else {
Toast.makeText(MainActivity.this, "Errore: impossibile ottenere i dati del ristorante", Toast.LENGTH_SHORT).show();
}
}
});
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... o-recycler
Ошибка позиции просмотра Firestore Recycler при переходе от активности к просмотру recyclerview ⇐ JAVA
Программисты JAVA общаются здесь
1716419313
Anonymous
Я работаю над приложением для ресторанов, в моей основной деятельности есть recyclerview с Firestore, заполненный базой данных в реальном времени, когда я нажимаю на карту, он активирует onitemclicklistener mListener, все это в моем адаптере ресторана, в основном У меня есть адаптер.setOnItemClickListener, который передает позицию и намерение активности ресторана.
Клик работает, он переносит меня к активности ресторана, но проблема возникает, когда я возвращаюсь от активности ресторана к основной деятельности.
Я пробовал использовать onbindingadapterposition, и все, но ничего, ошибка все еще есть
E FATAL EXCEPTION: main
Процесс: com.example.prueba2, PID: 10188
java.lang.IndexOutOfBoundsException: обнаружено несоответствие. Неверный адаптер держателя представления, позицияresviewHolder{39ee2cb позиция=9 id=-1, oldPos=3, pLpos:3 Scrap [attachedScrap] tmpDetached без родительского элемента} androidx.recyclerview.widget.RecyclerView{7873f72 VFED..... ..... .Я. 3,3-1077,2208 #7f0801a2 приложение:id/recview}, адаптер:com.example.prueba2.adapter.RestaurantAdapter@966b36b, макет:androidx.recyclerview.widget.LinearLayoutManager@e16efc3, контекст:com.example.prueba2. MainActivity@2c5755a
в адаптере:
private OnItemClickListener mListener;
public interface OnItemClickListener {
void onItemClick(int position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
mListener = listener;
}
protected void onBindViewHolder(@NonNull resviewHolder holder,int position,@NonNull Restaurant model) {
holder.name.setText(model.getName());
holder.phone.setText(model.getPhone());
holder.address.setText(model.getAddress());
holder.category.setText(model.getCategory());
holder.averageRating.setRating(model.getAverageRating());
// Carga la imagen del restaurante utilizando Glide
Glide.with(holder.itemView.getContext())
.load(model.getPhotoUrl())
.into(holder.imageView);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int clickedPosition;
if (mListener != null) {
int adapterPosition = holder.getBindingAdapterPosition();
if (adapterPosition != RecyclerView.NO_POSITION) {
clickedPosition = adapterPosition;
} else {
// Se getBindingAdapterPosition() restituisce NO_POSITION, non fare nulla
return;
}
mListener.onItemClick(clickedPosition);
}
}
});
}
public int getItemCount() {
return super.getItemCount();
}
и основная деятельность:
`
adapter.setOnItemClickListener(new RestaurantAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
// Ottieni il ristorante dalla posizione selezionata
Restaurant selectedRestaurant = adapter.getItem(position);
if (selectedRestaurant != null) {
// Avvia l'attività ViewRestaurantActivity passando i dati del ristorante come extra
Intent intent = new Intent(MainActivity.this, ViewRestaurantActivity.class);
intent.putExtra("restaurant_name", selectedRestaurant.getName());
intent.putExtra("restaurant_phone", selectedRestaurant.getPhone());
intent.putExtra("restaurant_address", selectedRestaurant.getAddress());
intent.putExtra("restaurant_category", selectedRestaurant.getCategory());
intent.putExtra("restaurant_photoUrl", selectedRestaurant.getPhotoUrl());
intent.putExtra("restaurant_cordX", selectedRestaurant.getCordX());
intent.putExtra("restaurant_cordY", selectedRestaurant.getCordY());
intent.putExtra("rating_avg", selectedRestaurant.getAverageRating());
startActivity(intent);
} else {
Toast.makeText(MainActivity.this, "Errore: impossibile ottenere i dati del ristorante", Toast.LENGTH_SHORT).show();
}
}
});
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78520335/firestore-recycler-view-position-error-when-going-back-from-activity-to-recycler[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия