Доброго времени суток!
При заполнении ListView вылетает ошибка, выхода за пределы массива хотя я добавляю всего 1 объект.
Кодpublic class RestaurantMenuFragment extends Fragment {
private int DishPhoto;
private String DishName;
private int Weight;
private int Price;
private ArrayList<DishMenu> menus;
private Context context;
private ListView listView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.restaurant_menu, container, false);
listView = view.findViewById(R.id.restaurant_menu_list);
context = inflater.getContext();
menus = new ArrayList<>();
menus.add(new DishMenu("Яичница с Авокадо","Питательный и очень полезный завтрак для хорошего настроения",
new String[]{"Яйца","авокадо","помидоры","мука пшеничная", "молоко", "лук","соль","черный перец","оливковое масло","укроп"},
151,33,4.7,277,250,350));
RestaurantMenuAdapter adapter = new RestaurantMenuAdapter(context, menus);
listView.setAdapter(adapter);
Log.i("RestMenuFragment", "return view");
return view;
}
}
private class RestaurantMenuAdapter extends ArrayAdapter<DishMenu> {
private Context context;
public RestaurantMenuAdapter(Context context, ArrayList<DishMenu> menu) {
super(context, R.layout.restaurant_menu_item, menu);
this.context = context;
}
@Override
public int getCount() {
return menus.size();
}
@Override
public DishMenu getItem(int position) {
return menus.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.i("getView", "position " + position);
DishMenu menu = getItem(position);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.restaurant_menu_item, parent, false);
ImageView photoDish = view.findViewById(R.id.iv_menu_photo_dish);
TextView nameDish = view.findViewById(R.id.tv_menu_name);
TextView weightDish = view.findViewById(R.id.tv_menu_weight);
Button addToBuyList = view.findViewById(R.id.btn_menu_add);
if (menu != null) {
// photoDish.setImageResource(menu.get);
nameDish.setText(menu.getName());
weightDish.setText(String.valueOf(menu.getWeight()));
addToBuyList.append(String.valueOf(menu.getPrice()));
}
return view;
}
}
}
Дополнение
В другом фрагменте с точно такой же структурой все работает.
Может это важно-данный фрагмент является вложенным.