2016-07-15 15 views
1

Also ich habe ein String-Array, das ich habe. Ich versuche, jedes einzelne Element von diesem Zeichenfolgenarray an den benutzerdefinierten Adapter zu übergeben. Ich habe Probleme herauszufinden, wie ich die Zeichenfolge verwende, die ich im benutzerdefinierten Adapter übergebe?Verwenden eines String-Arrays mit einem benutzerdefinierten Adapter zur Listenansicht?

String [], dass ich pass

String favorites = String.valueOf(FavList.get(0).get("favorites_list")); 

       String[] separated = favorites.split(","); 

       for (String s: separated) { 
        //Do your stuff here 
        FavoritesAdapter.add(s); 
       } 

Adapter.class

public class FavoritesAdapter extends ArrayAdapter<favoriteList> { 
private final Context mContext; 
private List<favoriteList> favlist; 
private TextView favorites; 
private TextView favDetail; 

public FavoritesAdapter(Context context, ArrayList<favoriteList> objects) { 
    super(context, R.layout.favorites_listview_single, objects); 
    this.mContext = context; 
    this.favlist = objects; 
} 


public View getView(final int position, View convertView, final ViewGroup parent) { 
    if (convertView == null) { 
     LayoutInflater mLayoutInflater = LayoutInflater.from(mContext); 
     convertView = mLayoutInflater.inflate(R.layout.favorites_listview_single, null); 
    } 


    // Here is where i cant figure out how to get the string that I passed. 






    return convertView; 
} 

}

+0

eine Arraylist für Ihre Daten erstellen sie dann zu Ihrem Adapter übergeben . Ohne Ihren Adaptercode zu sehen, ist es schwer zu wissen – Eenvincible

+0

Sorry - vergessen hinzuzufügen, nur hinzugefügt. – AndroidDev21921

Antwort

1

Es scheint, wie Sie nur vorbei Strings, so dass ich bin mir nicht sicher, warum Sie eine ArrayAdapter<favoriteList> verwenden .

public class FavoritesAdapter extends ArrayAdapter<String> { 
    private final Context mContext; 
    private ArrayList<String> favlist; 
    private TextView favorites; 
    private TextView favDetail; 

    public FavoritesAdapter(Context context, ArrayList<String> objects) { 
     super(context, R.layout.favorites_listview_single, objects); 
     this.mContext = context; 
     this.favlist = objects; 
    } 

    public View getView(final int position, View convertView, final ViewGroup parent) { 
     if (convertView == null) { 
      LayoutInflater mLayoutInflater = LayoutInflater.from(mContext); 
      convertView = mLayoutInflater.inflate(R.layout.favorites_listview_single, null); 
     } 

     String favoriteItem = favlist.get(position) //get the string you passed 


     return convertView; 
    } 

    //...more code 
} 

Dann, wenn Sie die Zeichenfolge übergeben, es ist wie so passieren:

Wenn Sie Ihren Adapter-Klasse, um diese Änderung

String favorites = String.valueOf(FavList.get(0).get("favorites_list")); 
ArrayList<String> favlist = (ArrayList<String>)Arrays.asList(favorites.split(",")); 

FavoritesAdapter adapter = new FavoritesAdapter(getApplicationContext(), favlist); 
listView.setAdapter(adapter); //where listView is the view you declared previously 
+0

fehlt etwas wie favoriteIte.findViewById (R.id.someTextView) .setTextView (favoriteItem); – piotrpo

+0

op nicht angeben, was er mit der Zeichenfolge, so dass ich nur gezeigt, wie passieren sie und speichern sie in einer Variablen – Bill

+0

Danke QuidProQuo tun wollte! Dies funktionierte für mich, aber das Einzige, was ich hinzufügen musste, war die Deklaration der 'neuen' arrayList. Siehe unten: ArrayList favlist = neue ArrayList <> (Arrays.asList (favorites.split (","))); – AndroidDev21921

Verwandte Themen