2016-11-22 28 views
0

我正在使用lib FlexibleAdapter像這樣在android studio中加載JSON API。如何從模型函數中加載所有的Arraylist?

public void createHolderSectionsDatabase(int size, int headers) { 
    databaseType = DatabaseType.MODEL_HOLDERS; 
    HeaderHolder header = null; 
    mItems.clear(); 
    int lastHeaderId = 0; 
    for (int i = 0; i < size; i++) { 
     header = i % Math.round(size/headers) == 0 ? newHeaderHolder(++lastHeaderId) : header; 
     mItems.add(newItemHolder(i + 1, header)); 
    } 
} 

private HeaderHolder newHeaderHolder(int i) { 
    HeaderModel model = new HeaderModel("H" + i); 
    model.setTitle("Header " + i); 
    return new HeaderHolder(model); 
} 

private ItemHolder newItemHolder(int i, HeaderHolder header) { 
    ItemModel model = new ItemModel("I" + i); 
    model.setTitle("Holder Item " + i); 
    model.setSubtitle("Subtitle " + i); 
    return new ItemHolder(model, header); 
} 

上面的代碼只加載循環模型項目中的數據。

我可以申請JSON API,如:

如何更改如下代碼:

/*  for (int i = 0; i < size; i++) { 
      header = i % Math.round(size/headers) == 0 ? newHeaderHolder(++lastHeaderId) : header; 
      mItems.add(newItemHolder(i + 1, header)); 
     }*/ 

像這樣:

listArrayFromJSON = getArrayJSON(); //get JSON with GSON request 
    mItems.addAll(ListArrayFromJSON,header); //not add` 

回答

0

我不知道你的JSON字符串的結構,但是,你可以更新問題或從下面啓發

public class DataHolder{ 
    private ArrayList<ItemHolder> items; //json object name 
    private ArrayList<HeaderHolder> headers; //json object name 

    public Arraylist<ItemHolder> getItems(){ 
     return items; 
    } 

    public Arraylist<HeaderHolder> getHeaders(){ 
     return items; 
    } 
} 

DataHolder holder = new Gson().fromJson(jsonString, DataHolder.class); 
mItems.addAll(holder.getItems()); 
mHeaders.addAll(holder.getHeaders()); 
+0

如何將兩個模型'HeaderModel'和'ItemModel'合併爲一個ArrayList。所以當不喜歡'mItems.addAll(ListArrayFromJSON,header); //不是'但是像這樣:'mItems.addAll(ListArrayHeaderAndItemFromJSON);' – Izzamed

+0

它們是不同的對象嗎? – mismanc

+0

Yess,對,他們是不同的對象 – Izzamed

相關問題