Я озадачен, почему это не работает.У меня есть массив (daysOfWeek) внутри документа в Firestore, который мне нужно отобразить в держателе представления в представлении реселлера.Строки, целые, длинные и т. Д., Которые я извлекаю из документа, все в порядке, но я не могу понять, как преобразовать массив в строку.Просто для некоторого контекста, массив содержит выбранные пользователем дни недели, и мне нужно соответствующее текстовое представление, чтобы показать все выбранные дни недели.
Вот фрагмент кода моего адаптера:
public class MealPlanDetailsAdapter extends RecyclerView.Adapter<MealPlanDetailsAdapter.MealPlanDetailsViewHolder> {
private Context adapterContext;
private ArrayList<MealplanDetails> mealplanDetailsArrayList;
private final static String TAG = MealPlanDetailsAdapter.class.getSimpleName();
public MealPlanDetailsAdapter(Context adapterContext, ArrayList<MealplanDetails> mealplanDetailsArrayList) {
this.mealplanDetailsArrayList = mealplanDetailsArrayList;
this.adapterContext = adapterContext;
}
@NonNull
@Override
public MealPlanDetailsAdapter.MealPlanDetailsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
LayoutInflater layoutInflater = LayoutInflater.from(adapterContext);
View view = layoutInflater.inflate(R.layout.mealplan_card, viewGroup, false);
return new MealPlanDetailsViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MealPlanDetailsAdapter.MealPlanDetailsViewHolder mpDetailsViewHolder, int position) {
// Set days of week
StringBuilder stringBuilder = new StringBuilder();
for (Object day : mealplanDetailsArrayList.get(position).getDaysOfWeek())
{
stringBuilder.append(day.toString());
stringBuilder.append(" ");
}
String finalDays = stringBuilder.toString();
Log.d(TAG, "days of the week:" + finalDays);
mpDetailsViewHolder.tvDaysOfWeek.setText(finalDays);
// Set restaurant
// Set menu items
}
class MealPlanDetailsViewHolder extends RecyclerView.ViewHolder {
public tvDaysOfWeek
public MealPlanDetailsViewHolder(@NonNull View itemView) {
super(itemView);
tvDaysOfWeek = itemView.findViewById(R.id.days_week);
}
}
Мой переработчик работает нормально.Нет проблем с адаптером.Но это этот массив, который вызывает проблемы.Трассировка стека выглядит следующим образом:
Process: com.healthplan, PID: 20051
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.healthplan.MealPlanDetailsAdapter.onBindViewHolder(MealPlanDetailsAdapter.java:65)