我有一个 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
进行替换的地方,我正在调用与我使用 onCreateView 初始化的相同布局的 FrameLayout id。这个可以吗?或者在使用片段时会有另一种方法来替换实际布局?类似于意图对活动所做的事情。
更新 -
我有一个错误,.replace
因为它向我显示“类型 fragmenttransaction 中的方法 replace(int, fragment) 不适用于参数 (int, CallDeateilActivity) ”
更新 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"/>