You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Android中Cannot resolve symbol 'list'错误?

解决ListActivity中ListView ID与setListAdapter的冲突问题

问题根源

你遇到的「Cannot resolve symbol 'list'」是因为:

  • 你将ListView的ID设为@android:id/list,这是系统内置的资源ID,不属于你项目的R类,因此R.id.list无法被识别,必须用android.R.id.list来引用。
  • 另外你的ArrayAdapter构造参数存在错误:第二个参数传入了整个Activity的布局R.layout.activity_main,这里应该传入列表项的布局(而非页面布局)。

修正代码

修改MainActivity.java中的setListAdapter部分:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String[] dessert={"Chocolate Mousse",
            "Chocolate Cake",
            "Chocolate Macaroons",
            "Chocolate Cafe Website",
            "Dessert Selection"};

    // 替换R.id.list为android.R.id.list,同时改用系统列表项布局
    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, dessert));
}

补充说明

  1. android.R.layout.simple_list_item_1是Android系统提供的简单列表项布局,内部包含一个ID为android.R.id.text1的TextView,正好用来显示字符串数据。
  2. 如果你想用自定义的列表项布局,需要自己创建一个布局文件(比如list_item.xml),里面包含一个TextView,然后将ArrayAdapter的第二个参数改为R.layout.list_item,第三个参数改为自定义布局中TextView的ID。
  3. 如果你不想依赖系统ID,也可以放弃继承ListActivity,改为继承AppCompatActivity,然后通过findViewById(R.id.your_custom_list_id)获取ListView实例,再调用setAdapter方法。

内容的提问来源于stack exchange,提问作者joby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 16:00:20