這裡嘗試流程化加到fragment的步驟,目標是看到就能快速修改程式。
原則上只要檢查前三個步驟,用view.getActivity()就可以搞定大多數的問題




1、
以下的程式段一般用的是以下的寫法:
mRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.layout_swipe_refresh);

如果像下圖在fragment放入oncreateView的時候把元件加上view.才會正常,當然也要檢查view這個變數是否正常

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view=inflater.inflate(R.layout.view01,null);
    mRefreshLayout = (SwipeRefreshLayout)view.findViewById(R.id.layout_swipe_refresh);
    recyclerView= (RecyclerView) view.findViewById(R.id.Review);



    return view;
}

2、
this -> this.getActivity()
在Fragment中直接调用getActivity()方法,可以直接得到Fragment依附的Activity,而Activity是一个Context类型的对象。
可以不加this

3、
getPackageName() -> getActivity().getPackageName()
和上者相同,原則上MainActivity上的東西都會轉為getActivity(),fragmert才能監聽得到


以下與fragment無關,是其他可能需要注意的地方,多半是參數設定相關的檢查:

修改和刪除失效例如以下的情況:
MainActivity.db.deleteNotes( contactTemp.getId() );

結論是,變數只要一個放在MainActivity:
public static ConnectionDB db;
在Fragment01之類的地方要改為以下的寫法:
MainActivity.db 

private void showNote(){
Cursor cursor
加上cursor.close();


 

arrow
arrow
    文章標籤
    fragment getActivity()
    全站熱搜

    貓羽 發表在 痞客邦 留言(0) 人氣()