错误"无法解析符号' listView'"对于CustomListAdapter

时间:2016-09-20 21:00:12

标签: android listview

我目前正在开发基本的自定义ListAdapater 在我的MainActivity上,它在尝试从我的XML文件中查找ListView时显示此错误。

这是我的MainActivity.java:

public class MainActivity extends ListActivity {

    ListView list;

    String[] itemName = {
            "Item 1",
            "Item 2",
            "Item 3"
    };
    String [] itemContent = {
            "Item Content 1",
            "Item Content 2",
            "Item Content 3"
    };

    Integer[] imageId = {
            R.mipmap.pic1,
            R.mipmap.pic2,
            R.mipmap.pic3,
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        CustomListAdapter adapter = new CustomListAdapter(this, itemName, itemContent, imageId);
        list = (ListView)findViewById(R.id.list);
        list.setAdapter(adapter);

        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
                String SelectedItem = itemName[+position];
                Toast.makeText(getApplicationContext(), SelectedItem, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

这是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"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@android:id/list"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

在此问题here之前,我确实遇到了其他错误 除了android:id的错误之外,我的代码显示完全正常,这解决了这个特定问题,但我现在错误地使用了R.id.list

我还尝试了仅使用Activity的建议并在XML中删除关键字android 还修复了我的旧错误,但没有解决这个问题 我刚刚发布了原始代码。

2 个答案:

答案 0 :(得分:1)

findViewById

中并非完全需要此ListActivity
list = (ListView)findViewById(R.id.list);

可以使用getListView()获取,也可以手动执行

list = (ListView)findViewById(android.R.id.list);

基本上,您的XML使用的是android.R.id.list,而不是R.id.list。有区别。

如果您看到无法解决ListView的错误,那么您缺少import语句。

答案 1 :(得分:0)

正如@Sourav在上面的代码中指出的那样,你没有将 + 符号添加到android:id =“@ android:id / list”。将 + 符号添加到ID中意味着您正在给予 (分配)新ID到该元素但没有 + 意味着您要引用已在代码中其他位置声明的其他ID