2016-08-16 18 views
-3

配列の配列はarray.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でこれを読んで - 問題がある

私はMyClassで
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); 

、myFragmentで

public class MyClass { 

    public String[] favourites; 

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

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

     lstView.setAdapter(favoritesAdapter); 
    } 

リストビューがオブジェクトとして表示されています単一の項目であり、文字列ではありません。私は間違いなく私のString配列をオブジェクトに変換してやりたい

+0

どのように文字列配列にオブジェクトのarraylistを割り当てることができますか?あなたのコードがIDEでコンパイルエラーを起こすことを期待してください。 – androidnoobdev

+1

カスタムクラス(MyClass)は、文字列配列を保持していて、このカスタムクラスをArrayListに追加するので、1つのオブジェクトを持つArrayListを持ち、そのオブジェクトの中に文字列配列を含みます。あなたはなぜそれが動作していないのだろうか?あなたの文字列配列をアダプタに提供するか、MyClassのArrays.asListを使って文字列配列を取得するだけです。これを行う5つの方法のうちの1つです。 –

答えて

0

あなたの問題はあなたが一覧表示するには、XML列をCONVERしたい場合は、このサンプルコードを使用する必要があり、ここで

arraylst.add(myclass); 

です:

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

をそしてあなたこのリストをリストアダプターに渡すことができます。

関連する問題