1 つのボタンを押すと、別の 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
replace を挿入した場所で、onCreateView で初期化したのと同じレイアウトの FrameLayout ID を呼び出しているということです。これでよろしいですか?または、フラグメントを使用するときに実際のレイアウトを別のレイアウトに置き換える別の方法はありますか? インテントのようなものは、アクティビティに対して行います。
アップデート -
「型fragmenttransactionのメソッドreplace(int、fragment)は、引数(int、CallDeateilActivity)には適用でき.replace
ません」と表示されているため、エラーが発生しています
更新 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"/>