@MCjores

Почему при заполнении ListView вылетает OutOfBoundException?

Доброго времени суток!
При заполнении 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;
        }
    }
}

Дополнение
В другом фрагменте с точно такой же структурой все работает.
Может это важно-данный фрагмент является вложенным.
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YLab Тольятти
от 80 000 до 130 000 руб.
RentaTeam Москва
от 120 000 до 170 000 руб.
Rambler Group Москва
До 220 000 руб.
21 июл. 2019, в 00:52
80000 руб./за проект
20 июл. 2019, в 19:38
10000 руб./за проект
20 июл. 2019, в 17:55
15000 руб./за проект