From 12c68d9ebf4647202d9aa874a2efc2b38e5e161d Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Sat, 24 Feb 2018 23:03:50 +0100 Subject: [PATCH] Fix adapter using toString() method for entry. Replace it to use getName(). Signed-off-by: Yahor Berdnikau --- .../moire/ultrasonic/view/ArtistAdapter.java | 26 +++++++++++++++++++ .../moire/ultrasonic/view/GenreAdapter.java | 25 ++++++++++++++++-- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/view/ArtistAdapter.java b/ultrasonic/src/main/java/org/moire/ultrasonic/view/ArtistAdapter.java index c153e3dc..67796a03 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/view/ArtistAdapter.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/view/ArtistAdapter.java @@ -19,8 +19,14 @@ package org.moire.ultrasonic.view; import android.content.Context; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.SectionIndexer; +import android.widget.TextView; import org.moire.ultrasonic.R; import org.moire.ultrasonic.domain.Artist; @@ -35,6 +41,7 @@ import java.util.List; */ public class ArtistAdapter extends ArrayAdapter implements SectionIndexer { + private final LayoutInflater layoutInflater; // Both arrays are indexed by section ID. private final Object[] sections; @@ -44,6 +51,8 @@ public class ArtistAdapter extends ArrayAdapter implements SectionIndexe { super(context, R.layout.artist_list_item, artists); + layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + Collection sectionSet = new LinkedHashSet(30); List positionList = new ArrayList(30); @@ -63,6 +72,23 @@ public class ArtistAdapter extends ArrayAdapter implements SectionIndexe positions = positionList.toArray(new Integer[positionList.size()]); } + @NonNull + @Override + public View getView( + int position, + @Nullable View convertView, + @NonNull ViewGroup parent + ) { + View rowView = convertView; + if (rowView == null) { + rowView = layoutInflater.inflate(R.layout.artist_list_item, parent, false); + } + + ((TextView) rowView).setText(getItem(position).getName()); + + return rowView; + } + @Override public Object[] getSections() { diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/view/GenreAdapter.java b/ultrasonic/src/main/java/org/moire/ultrasonic/view/GenreAdapter.java index ba194f10..12a21f3f 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/view/GenreAdapter.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/view/GenreAdapter.java @@ -19,8 +19,14 @@ package org.moire.ultrasonic.view; import android.content.Context; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.SectionIndexer; +import android.widget.TextView; import org.moire.ultrasonic.R; import org.moire.ultrasonic.domain.Genre; @@ -35,7 +41,7 @@ import java.util.List; */ public class GenreAdapter extends ArrayAdapter implements SectionIndexer { - + private final LayoutInflater layoutInflater; // Both arrays are indexed by section ID. private final Object[] sections; private final Integer[] positions; @@ -44,6 +50,8 @@ public class GenreAdapter extends ArrayAdapter implements SectionIndexer { super(context, R.layout.artist_list_item, genres); + layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + Collection sectionSet = new LinkedHashSet(30); List positionList = new ArrayList(30); @@ -62,7 +70,20 @@ public class GenreAdapter extends ArrayAdapter implements SectionIndexer positions = positionList.toArray(new Integer[positionList.size()]); } - @Override + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + View rowView = convertView; + if (rowView == null) { + rowView = layoutInflater.inflate(R.layout.artist_list_item, parent, false); + } + + ((TextView) rowView).setText(getItem(position).getName()); + + return rowView; + } + + @Override public Object[] getSections() { return sections;