-3

我正在尝试使用 if else 方法初始化一个字符串数组。但它不起作用。怎么做 ?

if(itemno==2){
        String[] values = new String[] { "Category31", 
                "Category32",
                "Category33",
                "Category34", 
                "Category35", 
                "Category36", 
                "Category37", 
                "Android Example List View" ,
                "daniel",
                "dude",
                "hello",
                "super,","dukker"

               };}

else if(itemno==3){
        String[] values = new String[] { "Category31", 
                "Category32",
                "Category33",
                "Category34", 
                "Category35", 
                "Category36", 
                "Category37", 
                "Android Example List View" ,
                "daniel",
                "dude",
                "hello",
                "super,","dukker"

               };}


    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, android.R.id.text1, values);
    l.setAdapter(adapter); 

但在适配器中显示变量不被接受的错误..帮助我

4

5 回答 5

1

您在' 块values内声明变量。if在您的情况下,变量的范围是从if' 开始,直到结束。

if(something)
{
   //start of if scope

   String[] values = {"one"};

   //values available here with contents: {"one"}
   //end of if scope
}
else
{
   //start of else scope

   String[] values;

   //values available here - different from the values above. this variable value is null here
   //end of else scope
}
//none of the values declared above are available here. From the compiler's PoW, no values variable has been declared here.

您尝试实现的解决方案是将values声明移到iforelse范围之外:放在String[] values;之前if,并删除and块中的String[]声明。ifelse

于 2013-11-05T09:07:42.300 回答
1

由于您的值变量在 if 括号内,因此无法在外部访问,请将其声明为类变量,然后在 if 块中对其进行初始化。

于 2013-11-05T09:03:28.043 回答
0

关于 if else,您的语法是正确的。要删除错误,请声明“String[] values;” 在 if else 语句之外。

于 2013-11-05T09:06:16.343 回答
0

您需要在 if else 块的范围之外声明 String[] 值。

于 2013-11-05T09:36:04.197 回答
0

您被声明为local. 所以它只能访问本地,这意味着在If块内部。它不能在If语句之外访问。所以请String[] values;在全局变量

于 2013-11-05T09:04:54.190 回答