2017-03-06 64 views
0

我想填充我的Listview使用另一個片段的數據。如何使用另一個片段的數據填充片段內的列表視圖?

我能夠從其他片段獲取數據,但是當我嘗試製作我的listview對象時,它返回null。

因此,該應用程序崩潰。

我從一個片段獲取用戶的數據,然後調用另一個片段的方法來傳遞數據。我在第二個方法的poplist()方法中創建我的listview對象和數組適配器。但是,由於空指針異常,該應用程序崩潰。 請幫忙。

public class WishListFragment extends Fragment { 
    ArrayList<String> wishListTitles = new ArrayList<String>(); 
    View rootView; 
    ListView wishListView; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
     Context context = getActivity(); 
     rootView = inflater.inflate(R.layout.fragment_wish_list, container, false); 
     return rootView; 
    } 

    // Another fragment gets the data from user as strings and calls this method 
public void popList(String str1, String str2, String str3, Context context) 
{ 
// LibModel is a pojo, I am using its constructor to set the values. 

LibModel lm = new LibModel(str1,str2,str3); 

    Log.w("Title:",lm.getTitle()); 
    Log.w("Author:",lm.getAuthor()); 
    Log.w("Language:",lm.getLang()); 

     wishListTitles.add(lm.getTitle()); 

     // I get this on the log, so the ArrayList is made correctly 
     Log.w("ArrayList:",wishListTitles.get(0)); 

     // The listView gives Null Pointer exception and crashes the app 
     wishListView = (ListView) rootView.findViewById(R.id.wl_lv); 
     ArrayAdapter<String> wishListAdapter = new ArrayAdapter<String>(context, 
      android.R.layout.simple_list_item_1,wishListTitles); 

     wishListView.setAdapter(wishListAdapter); 
    } 
} 

我曾嘗試以下,但同時使ListView中這是行不通的,而不是rootView

  1. 使用getView方法。
  2. 試圖使onCreateView()方法內的列表視圖,但然後listview對象爲空,我得到空指針。

我無法找到一種方法來將設置適配器的列表視圖,因爲它是返回空值。

+0

通過bunlde將數據從FragmentOne傳遞到Fragmenttwo,在Fragmenttwo獲取並填充到適配器/ Listview/recyclerview。 – Android

回答

1

我會推薦在數據片段中進行接口回調。還要在包含片段的活動中保留列表視圖的引用。 回調後,接口函數將被執行,您可以從那裏更新列表視圖。

相關問題