java - android fragment 可以重复使用吗?

标签 java android android-fragments

Android fragment 是否可重用 - 我的意思是如果我可以使用如下代码:

class MyTabActivity extends FragmentActivity implements OnClickListener {

    Fragment[] tabs = new Fragment[3];

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.settings_activity);
        findViewById(R.id.button1).setOnClickListener(this);
        findViewById(R.id.button2).setOnClickListener(this);
        findViewById(R.id.button3).setOnClickListener(this);

        //first xml-defined fragment, it is inside  
        //FrameLayout with id R.id.loadTarget -> see openTab()
        tabs[0] = getSupportFragmentManager().findFragmentById(
                R.id.firstFragment);
    }

    private void openTab(int i) {
        final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.replace(R.id.loadTarget, getTabFragment(i));
        ft.addToBackStack(null);
        ft.commit();
    }

    private Fragment getTabFragment(int i) {
        if(tabs[i] == null) {
            switch(i) {

                //0-tab fragment has been allready 
                //retrieved in onCreate

                case 1:
                    tabs[1] = new MySecondTabFragment();
                    break;
                case 2:
                    tabs[2] = new MyThirdTabFragment();
                    break;
            }
        }
        return tabs[i];
    }

    @Override
    public void onClick(View v) {
        switch(v.getId()) {
            case R.id.button1:
                openTab(0);
                break;
            case R.id.button2:
                openTab(1);
                break;
            case R.id.button3:
                openTab(2);
                break;
        }
    }
}

最佳答案

是的, fragment 是可重用的,您可以多次将 fragment 附加/分离到 Activity 。正如您在文档中看到的,分离后, fragment 会被销毁,然后在添加到另一个 Activity 时再次创建。

关于java - android fragment 可以重复使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10338857/

相关文章:

java - 将 JSON 对象与实例匹配

java - 在哪里获取图像 io 包?

android - 在 Android 下检索视频的方向信息

java - 同步两部手机的系统时间

java - 反编译Java : Using JD I get an empty enum class

maven-2 - 如何在不编写任何 pom.xml 的情况下从 Maven Central 下载 jars

java - 使用支架和单独的线程在 Canvas 上绘图不会在屏幕上显示任何内容

Android:AlertDialog 在 fragment 中看起来不同

android - 在 android 中使用 fragment 和 frameLayout 有什么区别?两者可以互换使用吗?

java - 无法将字符串资源用于 ListView 项