Android “错误”;无法解析符号';listView'&引用;对于CustomListAdapter
我目前正在制作一个基本的自定义列表数据。Android “错误”;无法解析符号';listView'&引用;对于CustomListAdapter,android,listview,Android,Listview,我目前正在制作一个基本的自定义列表数据。 在我的MainActivity上,当试图从XML文件中查找我的ListView时,它显示此错误 以下是我的MainActivity.java: public class MainActivity extends ListActivity { ListView list; String[] itemName = { "Item 1", "Item 2", "Item
在我的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();
}
});
}
}
public类MainActivity扩展了ListActivity{
列表视图列表;
字符串[]项名称={
“项目1”,
“项目2”,
“项目3”
};
字符串[]项内容={
“项目内容1”,
“项目内容2”,
“项目内容3”
};
整数[]图像ID={
R.mipmap.pic1,
R.mipmap.pic2,
R.mipmap.pic3,
};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CustomListAdapter=新的CustomListAdapter(this、itemName、itemContent、imageId);
list=(ListView)findViewById(R.id.list);
list.setAdapter(适配器);
list.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView AdapterView,视图视图,整型位置,长id){
字符串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>
正如@Sourav在上面的代码中所指出的,您没有在android:id=“@android:id/list”中添加+签名。通过在id中添加+符号,表示您正在给予
(分配)新ID给该元素,但没有+意味着您引用的是代码中其他地方已声明的其他ID此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
语句 请尝试使用android:id=“@+id/list”
而不是android:id=“@android:id/list”
符号。不要再使用ListActivity
@android:id/list
是一个预定义的id,返回时不需要加号,但无论是否使用+号都不起作用。