findFragmentById を使用してフラグメントを取得しようとしていますが、代わりに null を取得するたびに、findFragmentByTag を使用して追加トランザクションにタグを追加しようとしましたが、それも同じです。
次のコードは、空白の開始テンプレートを変更したものです (簡単にするため)。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(null);
setContentView(R.layout.activity_main);
FragmentManager fragmentManager = getFragmentManager();
if (savedInstanceState == null) {
fragmentManager.beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
PlaceholderFragment placeholderFragment = (PlaceholderFragment) fragmentManager
.findFragmentById(R.id.container);
if (placeholderFragment == null) {
Log.i("TAG", "placeholderFragment is null");
} else {
Log.i("TAG", "placeholderFragment is not null");
}
}
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
return rootView;
}
}
}
add を に置き換えてみましたが、add(R.id.container, new PlaceholderFragment(), "TAG")
アクセスしようとしてfindFragmentByTag("TAG")
も成功しませんでした。
コードを意図したとおりに動作させるにはどうすればよいですか?