首先关闭;我想为这个冗长的问题道歉。我虽然这是了解我想要做的事情的唯一方法。无论如何。我有一个应用程序,用户导航抽屉,将为用户提供3种选择。我希望Test1Fragment成为列表视图。我似乎无法弄清楚如何实现这一目标。请帮忙。
MainActivity方法,根据选择控制加载哪个片段:
private void selectItem(int position) {
// update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
fragment = new Test1Fragment();
break;
case 1:
fragment = new Test2Fragment();
break;
case 2:
fragment = new Test3Fragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(mNavigationDrawerItemTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
Test1Fragment:
public class Test1Fragment extends Fragment {
public Test1Fragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_create, container, false);
return rootView;
}
fragment_create.xml:
<?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="match_parent" >
<!--<TextView-->
<!--android:id="@+id/txtLabel"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_centerInParent="true"-->
<!--android:text="Create View"-->
<!--android:textSize="16dp" />-->
<!--<ImageView-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_below="@id/txtLabel"-->
<!--android:layout_centerHorizontal="true"-->
<!--android:layout_marginTop="10dp"-->
<!--android:src="@drawable/ic_action_copy" />-->
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
我知道我缺少listview的代码,但这是我想要的xml视图。
谢谢
答案 0 :(得分:0)
在您当前的实现中,您的布局代码应该在示例中查找:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/layout_fragment_listView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
然后在您的课程中,您必须使用数据填充listview。您必须创建适配器并将数据附加到此适配器。然后必须将适配器传递给listview。 快速举例:
public class Test1Fragment extends Fragment {
//No need for empty constructor, it is made by default
//public Test1Fragment() {
//}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_create, container, false);
ListView listView =(ListView)rootView.findViewById(R.id.layout_fragment_listView);
String[] items = { "Milk", "Cheese", "Cucumber", "Toilet", "Duck" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, items);
listView.setAdapter(adapter);
return rootView;
}
这样您就可以使用数组项中的字符串填充listview。 这是一个非常基本的示例,您还可以扩展基本适配器,并使用您自己的对象和视图填充它。
以下是结果屏幕截图: