Как разместить элементы ArrayObjectAdapter в порядке - PullRequest
0 голосов
/ 29 января 2020

Я отображаю несколько строк в одном заголовке, и есть еще 5 категорий, таких как драма, и я делаю ту же работу для них. У меня вопрос, когда я устанавливаю категории адаптеров, отображаемые случайным образом (при условии скорости запроса). Например, я хочу, чтобы драма отображалась в первой строке всегда. Я дал им идентификатор конструктора адаптера, но ничего не вышло. Код:

 if (response.body().getItems().size() > 0) {

                            Log.d("Drama",""+response.body().getItems().size());
                            List<MovieItem> newMovieItems = response.body().getItems();


                            HeaderItem liveHeader = new HeaderItem("Drama");

                            LiveChannelPresenter liveChannelPresenter = new LiveChannelPresenter();
                            ArrayObjectAdapter liveRowAdapter = new ArrayObjectAdapter(liveChannelPresenter);


                            for (int i = 0; i < newMovieItems.size(); i++) {
                                movieItem2 = response.body().getItems().get(i);
                                liveRowAdapter.add(movieItem2);
                            }

                            mRowsAdapter.add(new ListRow(0,liveHeader,liveRowAdapter));


                        }
                    }

1 Ответ

0 голосов
/ 29 января 2020
if (response.body().getItems().size() > 0) {

    Log.d("Drama",""+response.body().getItems().size());
    List<MovieItem> newMovieItems = response.body().getItems();
    //sorted:
    Arrays.sort(newMoviewItems, new Comparator() {  some condition to sort });


    HeaderItem liveHeader = new HeaderItem("Drama");

    LiveChannelPresenter liveChannelPresenter = new LiveChannelPresenter();
                        ArrayObjectAdapter liveRowAdapter = new ArrayObjectAdapter(liveChannelPresenter);


    for (int i = 0; i < newMovieItems.size(); i++) {
         //note the change here \|/
           movieItem2 = newMoviewItems.get(i);
            liveRowAdapter.add(movieItem2);
    }

    mRowsAdapter.add(new ListRow(0,liveHeader,liveRowAdapter));
}
...