activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <fragment android:name="com.example.l12_fragment3.TitleListFragment" android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" /> <FrameLayout android:id="@+id/fl_main_container" android:layout_width="0dp" android:layout_weight="3" android:layout_height="match_parent" > </FrameLayout> </LinearLayout> list_item.xml <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="5dp" android:paddingBottom="5dp" android:textSize="18sp" android:gravity="center" android:text="标题..." android:background="?android:attr/activatedBackgroundIndicator"> </TextView>
public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } public class DataUtils { public static final String[] TITLES = {"title1","title2","title3","title4","title5"}; public static final String[] DETAILS = {"This is title1","This is title2", "This is title3","This is title4","This is title5"}; } public class TitleListFragment extends ListFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //设置ListView为单选模式 getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); // 给listView设置adapter显示列表 setListAdapter(new ArrayAdapter<String>(getActivity(), R.layout.list_item, DataUtils.TITLES)); //默认选中第一个item getListView().setItemChecked(0, true); //显示第一个详情 showDetail(0); } @Override public void onListItemClick(ListView l, View v, int position, long id) { showDetail(position); } /** * 显示指定下标的详情 * @param position */ private void showDetail(int position) { //创建DetailFragment DetailFragment fragment = new DetailFragment(); //将对应的详情数据携带过去 Bundle args = new Bundle(); args.putString("DETAIL", DataUtils.DETAILS[position]); fragment.setArguments(args); //将其替换到id为fl_main_container的容器布局中 getFragmentManager().beginTransaction().replace(R.id.fl_main_container, fragment).commit(); } } public class DetailFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView textView = new TextView(getActivity()); //取出保存的数据 String detail = getArguments().getString("DETAIL"); //设置 textView.setText(detail); return textView; } }