У меня есть пользовательский DialogFragment
, который содержит макет, некоторые элементы пользовательского интерфейса и макет держателя фрагмента. Что мне нужно сделать, так это раздуть фрагмент содержимого в макет держателя и обеспечить навигацию внутри него. При нажатии кнопки внутри добавленного фрагмента представление перейдет к другому представлению. Фрагмент будет заменен другим в том же холдере, т.е. contentFragment1
покажет некоторые данные, а при нажатии на кнопку предварительного просмотра contentFragment1
заменится на contentFragment2
. Я где-то читал, что нельзя заменить фрагмент, жестко запрограммированный на xml
, другим. Итак, я пытаюсь добавить contentFragment1
к viewholder
из onActivityCreated()
фрагмента диалога. Но я получаю сообщение об ошибке, что ресурс, указанный R.id.fragmentHolder
, не найден. Что может быть возможной причиной?
Вот мой код для DialogFragment
:
public class MyDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog customDialog = new Dialog(getActivity());
customDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
customDialog.setContentView(R.layout.reports_dialog);
return customDialog;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
android.app.FragmentTransaction fragmentTransaction =getFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.myFragmentHolder, new ReportsListFragment());
fragmentTransaction.commit();
super.onActivityCreated(savedInstanceState);
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="400dp"
android:background="@android:color/transparent" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:text="This is my header text view for the Dialog"
android:textSize="18sp" />
<RelativeLayout
android:id="@+id/myFragmentHolder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/headerlayout" >
</RelativeLayout>