Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Poradnik na stronicowanie/paginacja


PabloTL

Rekomendowane odpowiedzi

Opublikowano

Pokaże poradnik jak zrobić stronicowanie przedmiotów. Coś takiego jak mamy w /? i /help. Pokaże to na przykładzie warpów.

Na początku musisz ustalić ile przedmiotów (tu warpów) będzie na jednej stronie. Załóżmy, że 15, więc robimy sobie zmienna.
 

public static final int ITEMS_PER_PAGE = 15;

Aby wyświetlić te przedmioty potrzebna będzie nam ich lista. Załóżmy, że robimy klasę która odpowiada za strony.

Oszczędzę sobie w tym poradniku generics, ponieważ mogą utrudnić jego zrozumienie.
 

public class PageRenderer {

    public static final int ITEMS_PER_PAGE = 15;

    private List<Object> items;



    public PageRenderer(List items) {

        this.items = items;

    }



    public List<Object> getItems() {

        return this.items;

    }

}

Teraz oczywiście musimy przeliczyć ilość stron, jaką będziemy mieli. Może się przecież tak zdarzyć, że będziemy mieli tylko tą jedną.
 

public int getPages() {

    return this.getItems().size() / ITEMS_PER_PAGE + 1;

}

Pozostaje nam więc sam rendering tej strony
 

public List<Object> getPage(int page) {

    int startItem = (page - 1) * ITEMS_PER_PAGE; // pierwszy przedmiot (warp) wyświetlany na stronie

    int endItem = startItem + ITEMS_PER_PAGE; // ostatni przedmiot (warp) wyświetlany na stronie



    // jeżeli lista nie może się wypełnić - jest już ostatnia

    if (endItem > this.getItems().size()) {

        endItem = this.getItems().size();

    }



    // zwracamy listę wszystkich przedmiotów (warpów) z tej strony

    return this.getItems().subList(startItem, endItem);

}

Teraz wystarczy sobie stworzyć listę warpów, i obiekt PageRenderer.
 

// tworzymy listę

List<Object> warps = new ArrayList<>();

warps.addAll(lista naszych warpów);



// tworzymy obiekt

PageRenderer page = new PageRenderer(warps);

List<Object> objects = page.getPage(1); // podajemy numer strony



// wysyłamy do gracza

for (int i = 0; i < objects.size(); i++) {

    player.sendMessage(i + ". " + objects.get(i).toString());

}

I gotowe! :D

 

Q8eOMob.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...