2016-07-30 7 views
1

Ich mache meinen eigenen Adapter, um Listenansichten mit einem Bild und etwas Text zu füllen. Ich möchte, dass der Adapter 3 Parameter (Context, String[] und einige Bild-Array) einnimmt.Speichern Sie ein Array von Bildern von einem Serveranruf?

Ich bin jedoch unsicher, wie man diese Klasse aufstellt.

Wenn ich Serveraufrufe mache, um die Bilder zu erhalten, gibt es eine gute Möglichkeit, sie in einem Array zu speichern, um in den Adapter zu übergeben?

+0

Wenn Sie versuchen, eine Reihe von Bildern im Speicher zu speichern, werden Sie wahrscheinlich die App zum Absturz bringen, wenn sie nicht sehr klein sind. Wenn es sich nur um kleine Miniaturansichten handelt, ist es vielleicht in Ordnung, aber wenn sie größer sind, müssen Sie sie wahrscheinlich im Speicher speichern und ein Array von Dateinamen oder etwas Ähnliches übergeben. – nasch

Antwort

0

Sie können eine benutzerdefinierte Klasse für die Anzeige Ihres Adapters definieren.

class AdapterData { 
    String text; 
    String url; // Some image url from a web service 

    // Or, if you are loading images from disk 
    // int resourceId; 

    public AdapterData(String s, String url) { 
     // TODO 
    } 
} 

Dann implementieren Sie einen ArrayAdapter<AdapterData>

Hinweis dies für ein ListView, keine RecyclerView Adapter

class MyAdapter extends ArrayAdapter<AdapterData> { 
    private ArrayList<AdapterData> mData; 
    private Context mContext; 

    public MyAdapter(Content c, ArrayList<AdapterData> data) { 
     super(c, 0, data); 
     this.mContext = c; 
     this.mData = data; 
    } 

    // TODO: Implement getView 
} 

Wenn Sie Ihre Ergebnisse von Ihrem Web-Service zu erhalten, eine Arraylist bauen und Initialisiere den Adapter mit dieser Liste.

Verwandte Themen