#java #android #android-recyclerview #android-linearlayout
#java #Android #android-recyclerview #android-linearlayout
Вопрос:
Нужна помощь с этим журналом ошибок. Пытаюсь создать приложение для доставки еды, и вот исходный код указанного приложения в Android Studio. Приложение продолжает сбой при каждом запуске приложения.:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.example.swiftbites.Adapters.OrdersAdapter.onBindViewHolder(OrdersAdapter.java:43)
at com.example.swiftbites.Adapters.OrdersAdapter.onBindViewHolder(OrdersAdapter.java:19)
Коды:
OrdersAdapter.java
package com.example.swiftbites.Adapters;
import ...
public class OrdersAdapter extends RecyclerView.Adapter<OrdersAdapter.viewHolder>{
ArrayList<OrdersModel> list;
Context context;
public OrdersAdapter(ArrayList<OrdersModel> list, Context context) {
this.list = list;
this.context = context;
}
@NonNull
@Override
public viewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.order_sample, parent, false);
return new viewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull viewHolder holder, int position) {
final OrdersModel model = list.get(position);
holder.orderImage.setImageResource(model.getOrderImage());
holder.soldItemName.setText(model.getSoldItemName());
holder.orderNumber.setText(model.getOrderNumber());
holder.price.setText(model.getPrice());
}
@Override
public int getItemCount() {
return list.size();
}
public class viewHolder extends RecyclerView.ViewHolder {
ImageView orderImage;
TextView soldItemName, orderNumber, price;
public viewHolder(@NonNull View itemView) {
super(itemView);
orderImage = itemView.findViewById(R.id.orderImage);
soldItemName = itemView.findViewById(R.id.orderItemName);
orderNumber = itemView.findViewById(R.id.orderNumber);
price = itemView.findViewById(R.id.orderPrice);
}
}
}
Комментарии:
1. поделитесь своим order_sample.xml
2. @PriyankaRajput Вот оно: pastebin.com/v4GngaCx
Ответ №1:
В вашем адаптере вы получаете идентификатор с именем orderPrice, но в определенном xml идентификатор не определен с таким именем. Вот почему вы получаете сбой. Вам нужно переименовать textView6 в orderPrice или вы можете изменить orderPrice в адаптере на textView6, как показано ниже
измените это
price = itemView.findViewById(R.id.orderPrice);
к этому
price = itemView.findViewById(R.id.textView6);
Комментарии:
1. Пожалуйста, поддержите ответ, если он сработал для вас. Это поможет и другим
Ответ №2:
проверьте свой идентификатор TextView, он неверен, поэтому android studio создает исключение с нулевым указателем, потому что вы устанавливаете texText() в другом TextView вместо этого.