При разборе JSONArray занимает последнее место в списке Retrofit? - PullRequest
0 голосов
/ 06 апреля 2020

Я получаю json запрос через GET

{"data": [
    "Черногория",
    "Чехия",
    "Чили"
]}

Как его проанализировать, если вам нужно отобразить каждую страну в отдельном элементе. Я использую Pojo.

@SerializedName("data")
    @Expose
    private ArrayList<String> data = null;

это действие, в котором я использую модификацию для подключения, все приходит, но отображает только последнее поле в списках

public void onResponse(Call<Countries> call, Response<Countries> response) {
            if (response.code() == 200) {
                Countries countries = response.body();
                if (countries != null) {
                    for (int x =0; x<countries.getData().size(); x++) {
                        arrayList.add(countries);
                        viewAdapterCountry.notifyDataSetChanged();
                    }}}
        }

этот адаптер

private ArrayList<Countries> countryModels;
    Countries countryModel = countryModels.get(i);
            List<String> country = countryModel.getData();
            for (int x = 0; x<country.size(); x++){
                viewHolder.button.setText(country.get(x));
            }

1 Ответ

1 голос
/ 06 апреля 2020

Я думаю, что вы добавляете все данные сразу, а не по одному arrayList.add(countries);, вы должны сделать arrayList.add(countries.getData().get(x));, тогда за пределами l oop вы должны написать viewAdapterCountry.notifyDataSetChanged();

в bindivewholder адаптера

    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
        val item = list?.get(position)

        holder.button.setText(item)

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