我正在尝试创建一个行布局,其中每个列表项都有一个模板可供使用。目前我有这个,它允许我在每个列表中显示单行文本。
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="20sp"
android:padding="100dp" >
</TextView>
但是,当我尝试更改它以允许我添加更多项目(如图像按钮和更多文本字段)时,它始终不允许我编译。
我尝试从developer.android网站上的教程中获取一段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="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/text1"
android:textSize="16sp"
android:textStyle="bold"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/text2"
android:textSize="16sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
但它引发了一个错误说明 - 匹配“[xX] [mM] [lL]”的处理指令目标不是 允许。 - 错误:解析XML时出错:XML或文本声明不在实体的开头
有人可以帮我吗?我不太清楚这个错误意味着什么。
更新:
我想要做的是在右边有一个像侧栏一样的片段,显示一个项目列表,我发布的第一个xml,我能够得到我想要的结果,但我不能不做任何改动。
package com.project.test;
import android.app.ListFragment;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class TestListFragment extends ListFragment {
String [] Items = {"Item A", "Item B", "Item C"};
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(getActivity(),
R.layout.listtemplate, Items));
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
Log.i("FragmentList", "Item clicked: " + id);
}
}
答案 0 :(得分:21)
你不会相信这个解决方案......我有同样的问题,答案是“在启动xml第一行之前删除所有空格”
答案 1 :(得分:2)
可能是因为您缺少LinearLayout的起始标记?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/text1"
android:textSize="16sp"
android:textStyle="bold"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/text2"
android:textSize="16sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>