0

我有课:


public class ConferenceListFragment extends SherlockListFragment {

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        DBAdapter dbAdapter = new DBAdapter(new DBHelper(getSherlockActivity()));       
        //How to get veriable "FLAG_BOOLEAN" ?
        List list = dbAdapter.getListItemInfoArray(FLAG_BOOLEAN);

        dbAdapter.close();

        CustomListAdapter adapter = new CustomListAdapter(getActivity(), list);
        setListAdapter(adapter);        
    }
}

根据变量 FLAG_BOOLEAN,我从 DB 获得不同的数据。那么我可以将这个 FLAG 从 Activity 发送到片段吗?

4

2 回答 2

1

您应该在活动中使用setArguments将它们传递给片段,并从片段中使用 getArguments 来检索它们

于 2013-01-03T20:38:25.517 回答
0

如果您以编程方式添加片段,则可以为 ConferenceListFragment 添加一个构造函数,该构造函数接受您的布尔标志并使用 FragmentTransaction 添加片段,如下所示:

ConferenceListFragment list1 = new ConferenceListFragment(true);
ConferenceListFragment list2 = new ConferenceListFragment(false);

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(parentView, list1);
ft.add(parentView, list2);
ft.commit();

使用构造函数在 ConferenceListFragment 中设置私有布尔成员变量:

public ConferenceListFragment(boolean flag){
    this.flag = flag;
}

然后当你调用你的方法时,你可以这样做:

List list = dbAdapter.getListItemInfoArray(this.flag);
于 2013-01-03T22:38:02.380 回答