Android: попытка получить список объектов с сервера и отобразить в списке

Вопрос:

Справедливо сказать, 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;
}

}

Любая помощь будет оценена

Ответ №1

Ваш метод getView возвращает null – как вы ожидаете увидеть какие-либо результаты визуально?

Оцените статью
TechArks.Ru
Добавить комментарий