2010-11-20 145 views
1

我得到一个解析错误,我不知道为什么(我是编程新手)。由于这个错误,R.java消失了,我最终有更多的错误。希望有人能帮助我。这里就是错误来自:list.xml解析XML时出错:未找到元素。它不会生成R.java,因为它

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    > 
    <ListView android:id="@+id/ListView01" android:layout_height="wrap_content" 
    android:layout_width="fill_parent"> 
    <TextView android:text="@+id/TextView01" android:id="@+id/TextView01" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:layout_marginLeft="10px" android:textColor="#0099CC"></TextView> 

</ListView> 

</LinearLayout> 

,这里是其中的XML文件名为:list.java

package com.aha; 

import java.util.HashMap; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.SimpleAdapter; 
import android.widget.SimpleAdapter.ViewBinder; 
import android.widget.Adapter; 
import android.widget.BaseAdapter; 

public class list extends ListActivity { 

    private HashMap<String, Class<?>> yourMap; 
    @Override 
    public void onCreate(Bundle b) { 
    yourMap = new HashMap<String, Class<?>>(); 
    yourMap.put("Matches", matches.class); 
    yourMap.put("Economy", finances.class); 
    } 

    public void onCreate1(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    String[] menu = getResources().getStringArray(R.array.menu_array); 
    setListAdapter(new ArrayAdapter<String>(this, R.layout.list, menu)); 

    ListView lv = getListView(); 
    lv.setTextFilterEnabled(true); 
    lv.setOnItemClickListener(new OnItemClickListener() { 
     public <View> void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
     // When clicked, show a toast with the TextView text 
      Object o = this.getListAdapter().getItem(position); 
      String keyword = o.toString(); 
      Intent intent = new Intent(this, yourMap.get(keyword)); 
      startActivity(intent); 

     } 
    }); 
    } 
} 

也是在这行我得到一个错误说我必须实现一个抽象的方法:

lv.setOnItemClickListener(new OnItemClickListener() { 

我只是想知道这是什么意思,不一定是一个解决方案。希望我能自己找出一个。解析错误我已经有一两天了,无法单独解决。

感谢所有帮助

回答

0

什么是您所使用的编辑器?

从我的经验,解析在Eclipse问题

被下一个

  1. 您的视图名称之一是造成骆驼情况*不要使用使用NO CAPSLOCK *
  2. R档是不是“刷新”,因此新的元素不会出现

尝试

  1. 用小写字母编写* .xml(在视图文件夹中)。
  2. 干净所有的项目,然后建立
  3. 也许你没有申报的项目适当notice for this table for the SDK version

请告知我要实际ERR(写在控制台)为进一步帮助。

+0

我使用日食。所以我的listview的id不应该是ListView01,而是listview01? – Robby 2010-11-21 15:45:19

+0

错误来自问题控制台:解析XML时出错:格式错误(无效令牌)\t main.xml Android AAPT问题 – Robby 2010-11-21 16:11:20

1

ListView应该没有子元素,请改用适配器。

+0

我使用了一个适配器,但是我收到了错误信息。这里是错误: 类型new AdapterView.OnItemClickListener(){}必须实现继承的抽象方法AdapterView.OnItemClickListener.onItemClick(AdapterView ,View,int,long)。我不知道这是什么意思 – Robby 2010-11-21 16:10:14

+0

添加一个方法到'onItemClick'(AdapterView ,View,int,long)' – Pentium10 2010-11-21 17:12:11

+0

我需要将任何东西放入方法中,还是可以放在方法中代码但实际上没有做任何事情? – Robby 2010-11-21 17:38:11

0

我有一个类似的问题,事实证明,因为Eclipse添加了“import android.R;” (如果您倾向于使用Ctrl-Shift-O导入文件,这可能会发生)隐藏在R.java中的.java文件隐藏声明中。 删除此导入行后,再次按预期查看R.java。

0

采取以下步骤:

  1. 保存并关闭.XML
  2. 删除.out.xml和/或在菜单.out.out.xml
  3. 单击项目并选择清洗.. 。
  4. 为“下面选择清洁工程”为您的项目
  5. 点击复选框,选择单选按钮,然后单击确定
  6. 运行程序。
0

你的问题似乎是在布局文件本身,

已添加TextView在布局文件中ListView标签内。只需将ListView移出TextView。

您的布局文件应该是这样的,

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    > 
    <ListView android:id="@+id/ListView01" android:layout_height="wrap_content" 
    android:layout_width="fill_parent"> 
    </ListView> 

    <TextView android:text="@+id/TextView01" android:id="@+id/TextView01" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:layout_marginLeft="10px" android:textColor="#0099CC"></TextView> 

</LinearLayout> 
相关问题