fragmentを使うためにはgetSupportFragmentManager();が必要です。
しかし、このメソッドを使うにはactivityが
AppCompatActivityを継承している必要があります。従ってこのままではfragmentも利用できないのです。
android.support.v4.app.FragmentActivityを継承してください。
(AppCompatActivityも、FragmentActivityを継承しています)
以下詳細ですが、読んで理解できなければ無視して構いません。
Fragmentの実装には、サポートライブラリを使う方法と使わない方法があります。
java
1// サポートライブラリを使用
2import android.support.v4.app.FragmentActivity;
3import android.support.v4.app.Fragment;
4import android.support.v4.app.FragmentManager;
5
6public class MainActivity extends FragmentActivity {
7 @Override
8 protected void onCreate(Bundle savedInstanceState)
9 {
10 super.onCreate(savedInstanceState);
11
12 FragmentManager fm = this.getSupportFragmentManager();
13 fm.beginTransaction().add(R.id.fragment, MyFragment.newInstance()).commit();
14 }
15
16 public static class MyFragment extends Fragment {
17 public static MyFragment newInstance()
18 {
19 return new MyFragment();
20 }
21 }
22}
23
java
1// サポートライブラリを未使用
2import android.app.Activity;
3import android.app.Fragment;
4import android.app.FragmentManager;
5
6public class MainActivity extends Activity {
7 @Override
8 protected void onCreate(Bundle savedInstanceState)
9 {
10 super.onCreate(savedInstanceState);
11
12 FragmentManager fm = this.getFragmentManager();
13 fm.beginTransaction().add(R.id.fragment, MyFragment.newInstance()).commit();
14 }
15
16 public static class MyFragment extends Fragment {
17 public static MyFragment newInstance()
18 {
19 return new MyFragment();
20 }
21 }
22}
23
ActivityにもgetFragmentManagerというメソッドがありますが、二点ほど注意点があります。
前者はともかく、後者はすぐにでもなくなるわけでもないですが、使うなというのであれば使わないに越したことはないですね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/11 11:17