getSupportFragmentManager();例

时间:2016-02-17 20:01:01

标签: java android android-fragments

我正在使用3个类来重用片段应该如何放置在屏幕中。 First类是通用抽象类,用于将片段添加到事务中。另外两个类是使用片段的实现来扩展抽象类。

头等舱:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;

public abstract class SingleFragmentActivity extends FragmentActivity {

    protected abstract Fragment createFragment();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fragment);
        FragmentManager fm = getSupportFragmentManager();
        Fragment fragment = fm.findFragmentById(R.id.fragment_container);
        if (fragment == null) {
            fragment = createFragment();
            fm.beginTransaction().add(R.id.fragment_container, fragment).commit();
        }
    }
}

第二课

import android.support.v4.app.Fragment;

public class CrimeActivity extends SingleFragmentActivity {

    @Override
    protected Fragment createFragment() {
        return new CrimeFragment();
    }
}

第3课

import android.support.v4.app.Fragment;

public class CrimeListActivity extends SingleFragmentActivity{
    @Override
    protected Fragment createFragment() {
        return new CrimeListFragment();
    }
}

使用上面的内容,我是否使用了getSupportFragmentManager()的相同引用;已经在抽象泛型类中定义,或者第二和第三类中的每一个都获得自己的引用。 Java如何真正起作用?

1 个答案:

答案 0 :(得分:0)

  

我使用getSupportFragmentManager();的相同参考吗?

是的,这就是类继承在Java中的工作方式。 FragmentActivity#getSupportFragmentManager()在所有类中都是相同的方法。