Android 是否可以同时从另一个活动调用活动和片段

Android 是否可以同时从另一个活动调用活动和片段,android,android-fragments,android-framelayout,Android,Android Fragments,Android Framelayout,我想在fragment上设置一个默认的框架布局,这个框架布局显示在半个布局的顶部,剩余的一半包含列表视图。单击列表项时,框架布局会更新布局项。这些都可以正常工作。但是,当我要设置默认框架布局时,如果来自上一个活动,则会产生问题。下面是我如何打开片段,这是此活动中的适配器类。我想在下一个包含列表的活动上设置默认的框架布局 grid.setOnClickListener(new OnClickListener() { @Override public void onClick

我想在fragment上设置一个默认的框架布局,这个框架布局显示在半个布局的顶部,剩余的一半包含列表视图。单击列表项时,框架布局会更新布局项。这些都可以正常工作。但是,当我要设置默认框架布局时,如果来自上一个活动,则会产生问题。下面是我如何打开片段,这是此活动中的适配器类。我想在下一个包含列表的活动上设置默认的框架布局

 grid.setOnClickListener(new OnClickListener() {

     @Override
     public void onClick(View arg0) {
     // Get the position
     resultp = data.get(position);
     frame=(FrameLayout)grid.findViewById(R.id.fragment_container);
     Intent intent = new Intent(context, SingleItemView.class);

     intent.putExtra("id", resultp.get(MainActivity.RANK));

     intent.putExtra("count", resultp.get(MainActivity.COUNTRY));

     intent.putExtra("population",resultp.get(MainActivity.POPULATION));

     intent.putExtra("flag", resultp.get(MainActivity.FLAG));
     // Start SingleItemView Class

     intent.putExtra("mylist", data);
     context.startActivity(intent);


     if(frame==null){

        DefaultLogFrag fragment1 = new DefaultLogFrag();

        FragmentManager fragmentManager1 = ((Activity) context).getFragmentManager();
        FragmentTransaction fragmentTransaction1 = fragmentManager1.beginTransaction();
        fragmentTransaction1.add(R.id.fragment_container, fragment1);
        fragmentTransaction1.commit();
        }
    }

});

只需使用打开下一个活动

Intent Intent=newintentContext,SingleItemView.class

并将片段事务添加到SingleItemView.java活动的onCreate中

如果您希望根据某些条件添加不同的片段,则可以使用intent variable EXTRACT传递条件变量:

intent.putExtra("whichFragment", /* integer parameter */ 4);
在SingleItemView.java的onCreate中处理它们:


您应该在SingleItemView活动的onCreate方法中添加片段
switch(getIntent().getExtraString("whichFragment")) {
    case 1: /* add Fragment 1 */
        break;
    case 2: /* add Fragment 2 */
        break;
    case 3: /* add Fragment 3 */
        break;
    case 4: /* add Fragment 4 */
        break;
}