【发布时间】:2015-11-22 15:17:55
【问题描述】:
没错,我有一个导航栏布局。当我的导航栏中的stand1按钮被按下时,content_main中的<FrameLayout>被替换为stand1.xml。这没有任何问题。
Content_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:showIn="@layout/app_bar_main"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"></FrameLayout>
</RelativeLayout>
stand1.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">
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/Stand1list">
</ListView>
</LinearLayout>
来自主要活动
if (id == R.id.Stand1) {
fm.beginTransaction().replace(R.id.content_frame, new Stand1()).commit();
setTitle(R.string.Stand1);
按照在线教程,这是我的 Stand1.java 文件,用于用字符串数组填充 a 列表
public class Stand1 extends Fragment {
ListView mList;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.stand1,container,false);
mList = (ListView) root.findViewById(R.id.Stand1list);
return root;
}
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
populateListView();
}
private void populateListView() {
String[] pair = {"Pair1","Pair2","Pair3","Pair4","Pair5"};
//build adapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), R.layout.row_layout,pair);
mList.setAdapter(adapter);
}
}
和 row_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text1"
xmlns:android="http://schemas.android.com/apk/res/android" />
这是有效的,它显示了 5 个字符串。但是我想这样做,所以我也可以在每一行都有一个复选框。
如果我尝试将 linear layout 放在 row_layout.xml 中,我会收到错误
ArrayAdapter requires the resource ID to be a TextView
我正在关注 stackoverflow,它对其他错误进行了排序,这表明我必须在类级别制作列表并在 onCreate 中对其进行扩充。
我知道我可能必须制作一个自定义数组适配器,但我的问题是如何处理 on create 中的视图膨胀。
我不确定我是怎么做的。那么有人可以从这里告诉我,我该如何在每一行中设置一个复选框。
感谢您的帮助
【问题讨论】:
标签: android arrays android-fragments android-arrayadapter