フラグメントを作成し、Java コードを使用してレイアウトに追加しています。これを行うために、2 つのクラスと 2 つのレイアウトを作成しました。クラスの 1 つは Fragment を拡張し、他のクラスは FragmentActivity を拡張します。xml ファイルの 1 つはコンテナで、もう 1 つはフラグメントです。これが私のコードです:
public class FragmentClass extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_layout, container,false);
return v;
}
}
そして、これがフラグメントをレイアウトに追加する方法です:
public class Fragment_Activity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.container_layout);
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.container_layout_eklenecek_yer);
if(fragment==null){
fragment=new FragmentClass();
fm.beginTransaction().add(R.id.container_layout_eklenecek_yer, fragment).commit();
}
}
}
このコードは期待どおりに機能しますが、ここに私の質問があります: Fragment_Activity クラスに次のようなコードがあります。
fragment=new FragmentClass();
FragmentClass にはコンストラクターがありません。デフォルトですか、空のコンストラクターがここで呼び出されますか、それとも onCreateView がコンストラクターとして機能しますか? 私はここで混乱しています。
ありがとう