2016-08-16 3 views
-3

zu setzen Ich habe ein Zeichenfolgenarray in arrays.xml. Es ist -Nicht in der Lage, das Zeichenfolgenarray in der Liste

<resources> 
    <string-array name="messages"> 
     <item>@string/hello</item> 
     <item>@string/bye</item> 
     <item>@string/hi</item> 
     <item>@string/how_are_you</item> 
    </string-array> 
</resources> 

ich dies in meinem MainActivity lesen as -

String[] favouriteMessage; 
public ArrayList<MyClass> arraylst; 

favouriteMessage = getResources().getStringArray(R.array.messages); 
final MyClass myclass = new MyClass(favouriteMessage); 
arraylst.add(myclass); 

//Send the arraylist to fragment 
myFragment.setFavourites(arraylst); 

In meinem MyClass,

public class MyClass { 

    public String[] favourites; 

    public MyClass(final String[] favouriteMessages){ 
     favourites = favouriteMessages; 
    } 
} 

In myFragment,

public void setFavourites(ArrayList<MyClass> favourites) { 
     this.favourites = favourites; 
     favoritesAdapter = new ArrayAdapter<>(getActivity(), R.layout.favorites_adapter,favourites); 

     lstView.setAdapter(favoritesAdapter); 
    } 

Das Problem ist die Listenansicht wird als Objekt in a angezeigt einzelnes Element und nicht als String. Ich möchte auf jeden Fall mein String-Array in Objekt konvertieren und es tun.

+0

Wie können Sie Arraylist eines Objekts String-Array zuweisen? Überprüfen Sie Ihren Code hoffe, dass die IDE Ihnen einen Kompilierungsfehler gibt. – androidnoobdev

+1

Sie verfügen über eine benutzerdefinierte Klasse (MyClass), die ein String-Array enthält, und Sie fügen diese benutzerdefinierte Klasse zu einer ArrayList hinzu - so verfügen Sie über eine ArrayList mit 1 Objekt, das ein String-Array innerhalb des Objekts enthält. Sie fragen sich, warum es nicht funktioniert? Stellen Sie den Adapter einfach mit Ihrem String Array zur Verfügung, oder rufen Sie das String Array mit Arrays.asList von MyClass .. oder einer von 5 anderen Möglichkeiten auf. –

Antwort

0

Ihr Problem ist hier

arraylst.add(myclass); 

Wenn Sie Liste xml Array conver zu, müssen Sie diesen Beispielcode verwenden:

<resources> 
<string-array name="messages"> 
    <item>@string/hello</item> 
    <item>@string/bye</item> 
    <item>@string/hi</item> 
    <item>@string/how_are_you</item> 
</string-array> 

String[] array = Resources().getStringArray(R.array.messages); 
ArrayList<String> list = new ArrayList<>(Arrays.asList(array)); 

Und dann Sie kann diese Liste an den Listenadapter übergeben.