activity_main.xml在第 13 行有一个错误(你可以在下面看到)。它说"解析 XML 时出错:格式不正确(令牌无效)"。除此之外,我的R.java已经自杀了。我已经找到了修复它的方法,但在修复此错误之前它们不起作用(至少我认为是因为这个)。感谢您的任何帮助。顺便说一下,我正在按照教程进行操作 Javacodegeeks.com
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:mynamespace="http://schemas.android.com/apk/res/com.Learning.learning"
xmlns:tools="http://schemas.android.com/tools"
mynamespace:layout_width="success"
mynamespace:orientation="vertical"
mynamespace:layout_height="success">
<ListView android:id="@+id/listView"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
List<Map<String>> planetsList = new ArrayList<Map<String,String>>() />
private void initList() {
//we populate them Planets
planetsList.add(createPlanet("planet", "Mercury"));
planetsList.add(createPlanet("planet", "Venus"));
planetsList.add(createPlanet("planet", "Earth"));
planetsList.add(createPlanet("planet", "Mars"));
planetsList.add(createPlanet("planet", "Jupiter"));
planetsList.add(createPlanet("planet", "Saturn"));
planetsList.add(createPlanet("planet", "Uranus"));
planetsList.add(createPlanet("planet", "Neptune"));
}
private HashMap<String, String> createPlanet(String key, String name) {
HashMap<String, String> planet = new HashMap<String, String>();
planet.put(key, name);
return planet;
}
// This is a simple adapter that accepts as parameter
// Context
// Data List
// The row layout that is used during the row creation
// The keys used to retrieve the data
// The View id used to show the data. The number and the view must match
simpleAdpt = new SimpleAdapter(this, planetsList, android.R.layout.simple_list_item_1, new String []
{"planet"}, new int[] {android.R.id.text1});
</ListView>
您是否也在activity_main.xml中混合了 Java 代码?因为activity_main.xml应仅包含以下代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView android:id="@+id/listView"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
</RelativeLayout>
MainActivity.java 应包含以下代码:
List<Map<String, String>> planetsList = new ArrayList<Map<String,String>>();
private void initList() {
planetsList.add(createPlanet("planet", "Mercury"));
planetsList.add(createPlanet("planet", "Venus"));
planetsList.add(createPlanet("planet", "Mars"));
planetsList.add(createPlanet("planet", "Jupiter"));
planetsList.add(createPlanet("planet", "Saturn"));
planetsList.add(createPlanet("planet", "Uranus"));
planetsList.add(createPlanet("planet", "Neptune"));
}
private HashMap<String, String> createPlanet(String key, String name) {
HashMap<String, String> planet = new HashMap<String, String>();
planet.put(key, name);
return planet;
}
我刚刚从您提供的链接中复制了此处的代码。
从 xml 中删除 JavaCode 并将其放在单独的 Java 文件中 您不能将 Java 代码放入 XML 文件中。
你把Java代码放在XML文件中吗?Java 代码位于类文件中。
根据该教程,他们希望您创建一个名为 activity_main.xml
的 xml 文件与内容
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView android:id="@+id/listView"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
</RelativeLayout>
另外,一个名为 MainActivity.java
的 Java 类
与内容
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ....
}
//...
}
来自您发布的链接源
删除 XML 标记中的 Javacode
和
我认为将其更改为
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:mynamespace="http://schemas.android.com/apk/res/com.Learning.learning"
xmlns:tools="http://schemas.android.com/tools"
mynamespace:layout_width="success"
mynamespace:orientation="vertical"
mynamespace:layout_height="success">
<ListView android:id="@+id/listView"
android:layout_height="match_parent"
android:layout_width="match_parent" />
</RelativeLayout> ^Listview tag closed here
删除</ListView>
标记。因为您已经在第 12 行关闭
您已在 XML 文件中包含 java 代码。请记住,Android 仅将 XML 文件用于布局和资源定义。数据填充、操作和其他处理的代码必须在 java 源文件中完成。例如,您可以在 MainActivity.java 文件中填充列表。
不能在 XML 文件中编写程序代码。这就是您出现错误的原因。阅读有关 XML 布局的更多信息