2017-12-19 11 views
-3

私は1つのtabBase Activityと1つのFragmentを持っています。私は基盤ActivityのAPIを呼び出して、そのリストデータをモデルリストクラスを使用してFragmentに渡しています。しかし、私は常にgetlistゼロを取得しています。 plsは私を助けます。リストモデルが返されないリスト

public class ListTempStorage { 

    private List<MyPojoClassList> listOne = new ArrayList<>(); 
    private List<MyPojoClassList> listTwo = new ArrayList<>(); 
    private List<MyPojoClassList> listThree = new ArrayList<>(); 


    public List<MyPojoClassList> getListOne() { 
    return listOne; 
    } 
    public void setListOne(List<MyPojoClassList> listOne) { 
    this.listOne = listOne; 
    } 
    public List<MyPojoClassList> getListTwo() { 
    return listTwo; 
    } 

    public void setListTwo(List<MyPojoClassList> listTwo) { 
    this.listTwo = listTwo; 
    } 


} 

マイFragmentクラス:

public class MyFragment extends Fragment { 

    private ListTempStorage ourInstance; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.my_layout, container, false); 
    // Inflate the layout for this fragment 
    init(v); 

    return v; 
    } 
    private void init(View v) { 
    ourInstance= new ListTempStorage(); 

    try { 

      List<MyPojoClassList> list = ourInstance.getListOne(); 
      if (list != null && list.size() > 0) { 

       populateOpenAllLayout(list); 


     } catch (Exception e) { 
      if (OlabiConstant.IS_DEBUGGABLE) e.printStackTrace(); 
      activity.finish(); 

     } 
+0

正しくインデントされていれば、読みやすくなります。 – khelwood

答えて

1

onCreateViewでのinitを呼び出すときは、常にあなたのデータを取り込むので、あなただけの空を取得します:

private void init(View v) { 
    ourInstance= new ListTempStorage(); 
} 

あなたが移入する必要がありますデータを取得したら、メソッドを作成します。

public void populate(ListTempStorage tempStorage) { 
    ourInstance = tempStorage; 
    // update your data here. 
} 

次に、基本アクティビティからメソッドフラグメントを呼び出すことができます。

+0

私は何を言ったのか理解していない、私はこのmehtodを援用しなければならないのですか? – user8737536

+0

あなたのフラグメントに実装する必要があります。その後、フラグメントがホストされているあなたのアクティビティからそれを呼び出します。 –

関連する問題