Потяните, чтобы обновить проблему в infinContainer

Amrita Stha спросил: 28 марта 2018 в 04:16 в: codenameone

Pull to refresh дает разные данные (не начиная с исходных данных), так как число страниц в следующем коде увеличивается. Как я могу установить значение number_number int в ноль, когда pull для обновления вызывается в infinContainer?

InfiniteContainer ic = new InfiniteContainer() {
    @Override
    public Component[] fetchComponents(int index, int amount) {
        ArrayList<Map<String, Object>> data = fetchHerbData(res);
        - - - - - - - - - - - - - - - - - - - - 
        - - - - - - - - - - - - - - - - - - - - 
    }
};int pageNumber = 0;ArrayList<Map<String, Object>> fetchHerbData(Resources res) {
    try {
    ConnectionRequest r = new ConnectionRequest();
        r.setPost(false);
        r.setUrl("http://api.nestoria.co.uk/api");
        r.addArgument("pretty", "0");
        r.addArgument("action", "search_listings");
        r.addArgument("encoding", "json");
        r.addArgument("listing_type", "buy");
        r.addArgument("page", "" + pageNumber);
        pageNumber++;
        r.addArgument("country", "uk");
        r.addArgument("place_name", text);
        NetworkManager.getInstance().addToQueueAndWait(r);
        Map<String,Object> result = new JSONParser().parseJSON(new InputStreamReader(new ByteArrayInputStream(r.getResponseData()), "UTF-8"));
        Map<String, Object> response = (Map<String, Object>)result.get("response");
        return (java.util.List<Map<String, Object>>)response.get("listings");
    } catch(Exception err) {
        Log.e(err);
        return null;
    }
}

1 ответ

Есть решение
Shai Almog ответил: 28 марта 2018 в 02:19

Попробуйте это:

public Component[] fetchComponents(int index, int amount) {
    if(index == 0) pageNumber = 0;
    //... rest of code
}