java - 变量无法解析

标签 java android

我正在尝试创建一个项目列表,每个 i 和 j 变量都不同。我的代码是:

if (i == 0) { 
            if (j == 0) { 
                final CharSequence[] items = {"4:45", "5:00"}
            } else if (j == 1) { 
                final CharSequence[] items = {"4:43", "4:58"}
            } else if (j == 2) { 
                final CharSequence[] items = {"4:41", "4:56"}
            } else { 
                final CharSequence[] items = {"4:38", "4:53"}
}

...

new AlertDialog.Builder(this)
               .setTitle("Hours")
               .setItems(items,
                new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialoginterface, int i) {
                      // getStation(i);
                   }
                })
               .show();
       }

我在 .setItems(items,:

行中收到错误
items cannot be resolved

我认为编译器认为 CharSequence[] 项可能未初始化或其他... 我怎样才能让这个程序运行?

最佳答案

您的代码中实际上有 4 个 items 变量,每个变量的作用域都非常有限(仅是相应 if 的代码块)。

相反,您需要创建一个具有更大作用域的变量:

if (i == 0) { 
            final CharSequence[] items;
            if (j == 0) { 
                items = new CharSequence[] {"4:45", "5:00"};
            } else if (j == 1) { 
                items = new CharSequence[] {"4:43", "4:58"};
            } else if (j == 2) { 
                items = new CharSequence[] {"4:41", "4:56"};
            } else { 
                items = new CharSequence[] {"4:38", "4:53"};
            }
            // you can use items here
}

编辑:我忘记了这里需要new CharSequence[]。如果在声明期间初始化变量,则可以省略它,但在这里您将声明移出并使用简单的赋值来设置值。由于某种原因,定义数组的短语法在初始化语句中有效(即在与声明相同的语句中的赋值中)。

关于java - 变量无法解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56567454/

相关文章:

java - GWT 即时编译

java - Tomcat REST API 路径大小

java - 如何在 Android 软键盘上获取 '.' 点字符 KeyPressEvent

android - 错误 :Gradle: Execution failed for task . ..dexDebug

android - 软键盘不向上推 webview 内容也不调整大小

android - 奇巧 : Service is null after exiting main activity

java - 在 Open Shift/Docker 环境中基于 java 的 Restful Web 服务中使用多线程有哪些缺点?

java - 为注释字段设置默认空值时出错

android:defaultValue 在某些手机上不工作 - 解决方法?

android - 当 Activity 进入堆栈时如何释放内存?