Вызов метода внутри Runnable не работает в Android - PullRequest
0 голосов
/ 13 мая 2011

Мне нужно вызвать метод getItem () внутри исполняемого файла.Но дело в том, что это не работает.Оба журнала работают, но метод не выполняется.

this.viewItems = new Runnable() {

        public void run() {

            Log.i("getitem", "before");
            getItems();
            Log.i("getitem", "done");
        }
    };

Это метод getItems

    private void getItems() {
    try {
        Log.i("url", url);
        InputStream source = retrieveStream(this.url);
        Log.i("inside getitem", "before object");
        Gson gson = new Gson();

        Reader reader = new InputStreamReader(source);

        SearchResponse response = gson.fromJson(reader, SearchResponse.class); 

        Log.i("inside getitem", "after response");
        i_orders = new ArrayList<Items>();

        List<Offers> off = response.offers;

        for (Offers of : off) {

            Items item = new Items();

            item.setCovers(of.covers);
            item.setCuisine(of.cuisine);
            item.setDate_available(of.date_available);
            item.setDistance(of.distance);
            item.setEnd_time_available(of.end_time_available);
            item.setLarge_image_url(of.large_image_url);
            item.setLat(of.lat);
            item.setLon(of.lon);
            item.setMax_cover(of.max_cover);
            item.setMin_cover(of.min_cover);
            item.setOffer_description(of.offer_description);
            item.setOffer_id(of.offer_id);
            item.setPrice_range(of.price_range);
            item.setRestaurant_name(of.restaurant_name);
            item.setRestaurant_profile(of.restaurant_profile);
            item.setRestaurant_suburb(of.restaurant_suburb);
            item.setSmall_image_url(of.small_image_url);
            item.setStart_time_available(of.start_time_available);
            item.setTables_available(of.tables_available);
            item.setTime_available(of.time_available);


            i_orders.add(item);

        }

        Thread.sleep(1000);
        Log.i("ARRAY", "" + i_orders.size());
    } catch (Exception e) {
        Log.e("BACKGROUND_PROC", e.getMessage());
    }
    runOnUiThread(returnRes);
}

Я даже не получаю сообщения журнала в верхней части.

Спасибо заранее !!

Ответы [ 2 ]

0 голосов
/ 16 мая 2011

Я выяснил, что внутри метода getItems есть исключение из-за неформатированного URL.

0 голосов
/ 13 мая 2011

Существует неявное «это».перед getItems (), но когда вы звоните из «this» - это совсем другое (на самом деле Runnable).

Вы, вероятно, сможете сделать что-то вроде:

private Context myContext;

...

myContext = this;

this.viewItems = new Runnable ....

myContext.getItems ();

...

Но каким-то образом у вас должна быть какая-то переменная, которая является ссылкой на «это» во внешней области видимости, которую можно использовать для ссылки на нее из внутренней области.Объем.

...