Android: проблема с бесконечным адаптером - PullRequest
0 голосов
/ 10 июня 2011

Я пытаюсь использовать "http://github.com/commonsguy/cwac-endless", чтобы реализовать разбиение на страницы для представлений моего списка.

Я правильно получаю результаты первой страницы, когда прокручиваю вниз до нижней части 1-й страницы, яЯ вижу вращающееся колесо, но я не получаю никаких результатов.

Я заметил из LogCat, что getPendingView (), cacheInBackground (), appendCachedData () и getView () MyCustomAdapter вызывают бесконечно.

Может кто-нибудь помочь PLZ.

Спасибо, nehatha.

Вот мой фрагмент кода:

Activity{
    onCreate() {
        myList = new ArrayList<Item>();
        setListAdapter(new DemoAdapter(myList));
        nextLink = "service_url"; //for first page results (say 1-25)
    }

    final Handler handler = new Handler() {
        public void handleMessage(final Message msg) {
            //
            updateList(jsonResponse);
        }
    };

    updateList(String jsonString) {
        //parse json
        //add to `myList`
        //update `nextLink`, if there is next page available
    }

    class DemoAdapter extends EndlessAdapter {
        private RotateAnimation rotate=null;

        DemoAdapter(List<Item> list) {          
            super(new MyCustomAdapter(LatestUpdatesList.this, R.layout.latest_update_item, list));
            //rotate code
        }

        @Override
        protected boolean cacheInBackground() {
            if(nextLink != null && nextLink.length() > 0){
                HttpHandler httpHandler = new HttpHandler(nextLink, "GET", handler);
                Thread latestUpdatesThread = new Thread(httpHandler);
                latestUpdatesThread.start();
                return true;
            }
            return false;           
        }

        @Override
        protected void appendCachedData() {
            MyCustomAdapter adapter = (MyCustomAdapter)getWrappedAdapter();
            adapter.setList(myList);

        }
    } //DemoAdapter

} //Activitiy

1 Ответ

0 голосов
/ 10 июня 2011

Я исправил проблему, не вызывая мой веб-сервис в новом потоке (внутри метода cacheInBackground ()). Вместо этого я напрямую вызываю метод get () моего HttpHandler напрямую. Но я не уверен, что это лучшее решение.

Спасибо, nehatha

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...