Я использую HashMap для получения значений для моего адаптера списка.
Проблема в том, что последние два элемента моего HashMap повторяются.
Я пробовал разные решения, прежде чем отправлять этот вопрос.
Некоторая помощь будет высоко оценена, спасибо.
Вот код для моей HashMap
final String[] bookTitles = new String[]{
"android-iconify",
"Calligraphy",
"SmartTabLayout",
"android-viewpager-transformers",
"Android-Rate",
"FloatingActionButton",
"TapTargetView",
"MaterialDrawer"
};
final String[] authors = new String[]{
"Version 2.2.2",
"Version 2.2.0",
"Version 1.6.1",
"Version 1.0.1",
"Version 1.0.1",
"Version 1.6.4",
"Version 1.11.0",
"Version 6.0.8"
};
final String[] bookPages = new String[]{
"Copyright 2015 Joan Zapata",
"Copyright 2013 Christopher Jenkins",
"Copyright (C) 2015 ogaclejapan\nCopyright (C) 2013 The Android Open Source Project",
"Copyright 2015 Georgi Eftimov",
"Maintained by hotchemi",
"Copyright 2015 Dmytro Tarianyk",
"Copyright 2016 Keepsafe Software Inc.",
"Copyright 2018 Mike Penz"
};
ArrayList<HashMap<String, String>> authorList = new ArrayList<>();
for (int i = 0; i < 8; i++){
HashMap<String, String> data = new HashMap<>();
data.put("title", bookTitles[i]);
data.put("pages", bookPages[i]);
data.put("author", authors[i]);
authorList.add(data);
}
//Setup adapter
customListViewAdapter = new CustomListViewAdapter(getApplicationContext(), authorList);
listView.setAdapter(customListViewAdapter);
А вот код моего адаптера CustomListView.
Адаптер CustomListView
package com.novamlineam.meezan;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.zip.Inflater;
public class CustomListViewAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<HashMap<String, String>> books;
private static LayoutInflater inflater = null;
public CustomListViewAdapter(Context context, ArrayList<HashMap<String, String>> data) {
mContext = context;
books = data;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return books.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (convertView == null){
view = inflater.inflate(R.layout.list_row, null);
TextView title = (TextView) view.findViewById(R.id.libraryName);
TextView author = (TextView) view.findViewById(R.id.libraryVersion);
TextView pages = (TextView) view.findViewById(R.id.libraryCopyright);
HashMap<String, String> mBook = new HashMap<>();
mBook = books.get(position);
title.setText(mBook.get("title"));
author.setText(mBook.get("author"));
pages.setText(mBook.get("pages"));
}
return view;
}
}
А вот вывод, который я получаю
вывод адаптера CustomListView
оставшийся вывод адаптера CustomListView
Пожалуйста, помогите мне.