我开发了以下for循环来在下拉列表中设置数据。如果我使用.get()
方法上的数字来选择和比较哪个项目被点击,这很有效,但显然这对于设置的整数值是没用的。
我收到的错误是'a'变量无法解析为变量。
我真的不确定为什么呢?
以下是代码:
List<String> list = new ArrayList<String>();
list.add("-");
list.add("Medical");
list.add("Business");
list.add("Family");
list.add("Other");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
editTime.setAdapter(dataAdapter);
for(int a = 0; a < list.size(); a ++);
{
// Error on the 'a' variable - cannot be resolved to a variable.
if(typeReturned == list.get(a));
{
// Error on the 'a' variable - cannot be resolved to a variable.
editTime.setSelection(a);
}
}
答案 0 :(得分:8)
for
循环后,您有一个不必要的分号:
for(int a = 0; a < list.size(); a ++);
如果你不删除它,它与写作相同:
for(int a = 0; a < list.size(); a ++) { }
// a isn't in scope here any more.
在if
条件之后你有同样的错误。你也必须摆脱那个分号。
另外,我认为typeReturned
是String
,您将其与==
进行比较。这是个坏主意。您必须使用.equals()
,如果您想检查两个字符串是否具有相同的内容,请参阅:
答案 1 :(得分:4)
删除for循环末尾的半冒号
答案 2 :(得分:4)
你的for循环结束时有一个备用分号。删除它应解决问题。
答案 3 :(得分:4)
for(int a = 0; a < list.size(); a ++);
删除最后的;
。
答案 4 :(得分:4)
你必须删除“;”在for
之后和if
之后。
您改进的代码:
for(int a = 0; a < list.size(); a ++) //WITHOUT SEMICOLON !
{
if(typeReturned == list.get(a)) //WITHOUT SEMICOLON !
{
editTime.setSelection(a);
}
}
现在应该没问题。
答案 5 :(得分:3)
之后你有两个分号
for(int a = 0; a < list.size(); a ++);
此后如果
if(typeReturned == list.get(a));
删除它们并且它将起作用
答案 6 :(得分:2)
在if
和for
语句后删除分号。
for(int a = 0; a < list.size(); a ++);
if(typeReturned == list.get(a));
for循环和if语句不是完整的语句,后面加一个分号。它们是条件语句,用于检查和执行它们之后的块或行。
答案 7 :(得分:0)
您的代码中只有语法错误,也是其他人提到的。
Java中的分号表示语句的结尾,因此你的for循环在遇到第一个分号的地方结束,而不管之后的花括号。其余代码被视为一个单独的块,变量'a'仅在for循环中是局部的,因此在第一个分号后不可见。
同样适用于if语句后的分号。
for(int a = 0; a < list.size(); a ++); //** REMOVE THIS SEMICOLON
{
// Error on the 'a' variable - cannot be resolved to a variable.
if(typeReturned == list.get(a)); //** REMOVE THIS SEMICOLON
{
// Error on the 'a' variable - cannot be resolved to a variable.
editTime.setSelection(a);
}
}
希望这有帮助。
答案 8 :(得分:0)
从if和for语句中删除半冒号。