2016-08-16 24 views
-3

我在arrays.xml中有一個字符串數組。這是 -無法設置列表中的字符串數組

<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> 

我在MainActivity作爲閱讀本 -

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); 

在我MyClass的,

public class MyClass { 

    public String[] favourites; 

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

在myFragment,

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

     lstView.setAdapter(favoritesAdapter); 
    } 

問題是列表視圖正在被顯示爲一個對象單個項目而不是字符串。我絕對希望我的字符串數組被轉換爲對象並執行它。

+0

如何將對象的數組列表分配給字符串數組?檢查你的代碼希望IDE會給你編譯錯誤。 – androidnoobdev

+1

您有一個自定義類(MyClass),它包含一個字符串數組,並將此自定義類添加到一個ArrayList - 因此您有一個包含一個對象的ArrayList,該對象包含該對象內的一個String數組。你想知道爲什麼它不起作用?只需向Adapter提供String數組,或者使用MyClass中的Arrays.asList獲取字符串數組..或者執行此操作的其他方法之一。 –

回答

0

你的問題是在這裏

arraylst.add(myclass); 

如果你想CONVER XML數組列表中,您需要使用此示例代碼:

<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)); 

然後你可以通過這個列表來列出適配器。