2016-01-06 48 views
0

在我的項目,我用下面的代碼:替代的ImmutableMap.of()

 List<Map<String,?>> data = new ArrayList<>(); 
     data.add(ImmutableMap.of("icon", R.drawable.icon1, "label", getString(R.string.title1))); 
     data.add(ImmutableMap.of("icon", R.drawable.icon2, "label", getString(R.string.title2))); 
     data.add(ImmutableMap.of("icon", R.drawable.icon3, "label", getString(R.string.title3))); 
     data.add(ImmutableMap.of("icon", R.drawable.icon4, "label", getString(R.string.title4))); 
     data.add(ImmutableMap.of("icon", R.drawable.icon5, "label", getString(R.string.title5))); 

我想知道是否有這樣做,而不使用番石榴ImmutableMap因爲我需要刪除類似的方式它來自我的依賴。

回答

1

是的,定義一個類並創建該類的ArrayList

例子:

public class DataHolder { 

    // declare the variables String, int, String, String 

    public DataHolder(String str1, int drawableID, String str2, String str3){ 
    //initialize the class variables with the values passed in constructor 
    } 


} 

然後創建一個ArrayList<DataHolder> ad和你的對象添加到它:

ad.add(new DataHolder("icon", R.drawable.icon1, "label", getString(R.string.title1)); 
ad.add(new DataHolder("icon", R.drawable.icon2, "label", getString(R.string.title2)); 
ad.add(new DataHolder("icon", R.drawable.icon3, "label", getString(R.string.title3)); 
ad.add(new DataHolder("icon", R.drawable.icon4, "label", getString(R.string.title4)); 
+0

謝謝@Virus –

+0

高興它幫助。如果它符合你的目的,請接受答案。 – AndroidMechanic