-3

if else メソッドを使用して String 配列を初期化しようとしていますが、機能していません。どうやってするの ?

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

あなたの値の変数はブラケットの場合は内側にあるため、外部からアクセスすることはできません。クラス変数として宣言してから、if ブロックで初期化してください。

于 2013-11-05T09:03:28.043 に答える
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.

あなたが達成しようとしているものの解決策は、宣言をorスコープvaluesの外に移動することです:の前に置き、 andブロック内の宣言を削除します。ifelseString[] values;ifString[]ifelse

于 2013-11-05T09:07:42.300 に答える
0

if else ブロックのスコープ外で String[] 値を宣言する必要があります。

于 2013-11-05T09:36:04.197 に答える
0

あなたは値として宣言されていlocalます。Ifしたがって、ブロック内を意味するローカルにのみアクセスされます。Ifステートメント外ではアクセスできません。だからString[] values;グローバル変数で作ってください

于 2013-11-05T09:04:54.190 に答える
0

あなたの構文はif elseに関して正しいです。エラーを取り除くには、「String[] values;」を宣言します。if else ステートメントの外側。

于 2013-11-05T09:06:16.343 に答える