Справедливо сказать, IM a n00by..
Я пытаюсь получить список объектов с сервера и отобразить в listview. У меня есть адаптер, который отправляет запрос на сервер (jar на данный момент) и возвращает его. У меня есть фрагмент, который соединяет вид и адаптер, но я делаю что-то неправильно.
У меня такое чувство, что у меня есть что-то делать, как я getDayItems()
в onSelectedDayChange(...)
или/или из-за смешанного List/ArrayList в разных местах. Но я не судья.
Что касается выбора даты, сервер не принимает какие-либо переменные на данный момент, он должен просто дать мне список, если нажимается какая-либо дата.
Вот фрагмент..
public class FragmentA extends Fragment {
private ArrayList<CalanderMeal> calMeals = new ArrayList<CalanderMeal>();
private ListView listView;
private CalendarView calendarView;
private CalendarAdapter adapter;
private View parentView;
private int yearSelected; //year selected by user
private int monthSelected; //month selected by user
private int dayOfMonthSelected; //day of month selected by user
public static FragmentA newInstance(String text){
FragmentA f = new FragmentA();
return f;
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
parentView = inflater.inflate(R.layout.fragment_a, container, false);
calendarView = (CalendarView) parentView.findViewById(R.id.calendarView1);
listView = (ListView) parentView.findViewById(R.id.dailyView1);
/*
adapter = new CalendarAdapter(getActivity(), R.layout.fragment_a, calMeals);
ListView listview = (ListView)parentView.findViewById(R.id.dailyView1);
listview.setAdapter(adapter);
*/
calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener(){
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
yearSelected = year;
monthSelected = month;
dayOfMonthSelected = dayOfMonth;
calMeals = (ArrayList<CalanderMeal>) adapter.getDayItems();
adapter = new CalendarAdapter(getActivity(), R.layout.fragment_a, calMeals);
ListView listview = (ListView)parentView.findViewById(R.id.dailyView1);
listview.setAdapter(adapter);
}
});
return parentView;
}
}
А вот адаптер.
public class CalendarAdapter extends ArrayAdapter<CalanderMeal> {
private ArrayList<CalanderMeal> mCalList;
private CalendarService calService;
public CalendarAdapter(Context context, int layoutResourceID,
ArrayList<CalanderMeal> calList){
super(context, layoutResourceID, calList);
this.mCalList = calList;
}
public List<CalanderMeal> getDayItems(){
List<CalanderMeal> calList;
calService = CalendarServiceFactory.getCalanderService();
calList = calService.getMealsByDay();
return calList;
}
@Override
public int getCount() {
return mCalList.size();
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return null;
}
}
Любая помощь будет оценена
Ваш метод getView возвращает null – как вы ожидаете увидеть какие-либо результаты визуально?