如何从主要活动中调用选项卡式活动片段?

时间:2017-04-01 01:34:48

标签: java android sqlite

我选择了一个标签式活动模板,其中包含"操作栏标签"在android studio中。

然后我为每个标签创建了一个片段(One.java,Two.java,Three.java)。

我在第二个片段中有与游标相关的代码。事情就是当我运行应用程序时,第二个片段中的代码没有被执行。

我的问题是片段(Two.java)是否会被隐式调用,或者需要通过创建实例来调用(如果是,如何?)。

MainActivity.java的代码片段

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

       if(getArguments().getInt(ARG_SECTION_NUMBER)==1){
            View rootView = inflater.inflate(R.layout.fragment_one, container, false);

            return rootView;
        }
        else if (getArguments().getInt(ARG_SECTION_NUMBER) == 2) {
           View rootView = inflater.inflate(R.layout.fragment_two, container, false);
               return rootView;

           } else {
               View rootView = inflater.inflate(R.layout.fragment_three, container, false);
               return rootView;
           }
    }

Two.java的代码片段

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    logReader1 = new LogReader(getContext());
    db = logReader1.getReadableDatabase();
    Cursor logCursor = db.rawQuery("SELECT rowid _id,name,Time_Used,app_Image FROM logs ORDER BY Time_Used DESC", null);
    LogCursorAdapter logAdapter = new LogCursorAdapter((MainActivity) getContext(), logCursor);
    ListView log_Items = (ListView) container.findViewById(R.id.list_item);
    log_Items.setAdapter((logAdapter));
    return log_Items;

}

1 个答案:

答案 0 :(得分:0)

据我所知,你实际上并没有创建一个新片段。您正在膨胀您打算用作片段2的布局的布局。

https://developer.android.com/training/implementing-navigation/lateral.html之类的东西会让你指向正确的方向。注意他们如何在DemoCollectionPagerAdapter.

中创建和返回片段