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

Android开发:如何关联按钮与Spinner?代码标识无法解析求助

解决Spinner字符串无法解析的问题

看起来你遇到的问题是代码里的字符串字面量"Teste1"和"Teste2"无法被解析,我来帮你排查下可能的原因和解决办法:

可能的原因及修复方案

1. 代码放置的位置不正确

如果你的这段代码是直接写在Activity类的根级别(不是任何方法内部,比如onCreate()外面),那会导致变量初始化的上下文不对,Android无法正确解析这些字符串。

修复办法:把这段代码移到onCreate()方法内部,确保是在Activity初始化的时候执行:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout_name); // 记得替换成你的布局文件名

    // 把Spinner相关代码放在这里
    Spinner merendas; 
    String[] morfes = {"Teste1","Teste2"}; 
    ArrayAdapter<String> adapter; 
    merendas = (Spinner)findViewById(R.id.merendas); 
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, morfes);
    merendas.setAdapter(adapter); // 别忘了设置适配器到Spinner上!

    // 你的DrawerLayout代码...
}

2. Android Studio缓存问题

有时候IDE的缓存会导致错误提示,即使代码本身是正确的。

修复办法:

  • 点击菜单栏的File -> Invalidate Caches...,然后选择Invalidate and Restart重启Android Studio。
  • 也可以尝试Build -> Clean Project,然后Build -> Rebuild Project。

3. 推荐的最佳实践(避免类似问题)

在Android开发中,最好把字符串资源放在res/values/strings.xml里,而不是硬编码在代码中,这样不仅便于多语言适配,也能减少这类解析问题:

  1. 在strings.xml里添加:
<string-array name="morfes_list">
    <item>Teste1</item>
    <item>Teste2</item>
</string-array>
  1. 然后在代码中这样使用:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.morfes_list, android.R.layout.simple_list_item_1);
merendas.setAdapter(adapter);

另外,你原来的代码里还缺少了merendas.setAdapter(adapter);这一步,别忘了把适配器设置给Spinner,不然Spinner也不会显示选项哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:42:20