У меня была ListActivity, где, когда я нажал одну кнопку, я начал называть другой ListActivity. Теперь я должен изменить эти ListActivities на ListFragments. Я делаю это, чтобы раздуть макет:Запустить фрагмент из фрагмента
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
/**Inflate the layout for this fragment*/
return inflater.inflate(R.layout.recent_calls, container, false);
}
И начать намерение, теперь, как я фрагмента, я делаю это:
CallDetailActivity Fragment_detail = new CallDetailActivity();
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
transaction.replace(R.id.recent_calls, Fragment_detail);
transaction.addToBackStack(null);
transaction.commit();
Мой вопрос, где я поставил R.id.recent_calls
в замене, Я обращаюсь к идентификатору FrameLayout того же макета, который я инициализировал с помощью onCreateView. Это нормально? Или был бы другой способ заменить фактический макет другим при использовании фрагментов? что-то вроде намерения для активистов.
UPDATE--
У меня ошибку на .replace
, как это показывает мне "Метод замены (INT, фрагмент) в типе fragmenttransaction не применяется для аргументов (интермедиат, CallDeateilActivity) "
UPDATE 2--
<FrameLayout
android:id="@+id/recent_calls"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbarStyle="outsideOverlay"/>
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Call log is empty"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"/>
Вы должны держать одну раскладку как корень/родителя и использовать идентификатор этой точки зрения, чтобы заменить фрагмент –
ваш код выглядит отлично. – Raghunandan
Я обновил сообщение с ошибкой – masmic