0

ドロップダウンリストにデータを設定するために、次の 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);

    }
}
4

9 に答える 9

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()

Java で文字列を比較するにはどうすればよいですか

于 2013-01-29T17:43:43.800 に答える
4

「;」を削除する必要があります 前後。for_if

あなたの改善されたコード:

    for(int a = 0; a < list.size(); a ++) //WITHOUT SEMICOLON !
    {

    if(typeReturned == list.get(a)) //WITHOUT SEMICOLON !
    {

         editTime.setSelection(a);
    }

    }

今は大丈夫なはずです。

于 2013-01-29T17:45:07.737 に答える
4

for ループの最後にあるセミコロンを削除します

于 2013-01-29T17:43:47.060 に答える
4

forループの最後に予備のセミコロンがあります。それを削除すると、問題が解決するはずです。

于 2013-01-29T17:44:03.860 に答える
4
for(int a = 0; a < list.size(); a ++);

最後に を削除し;ます。

于 2013-01-29T17:44:30.067 に答える
3

forの後に2つのセミコロンがあります

for(int a = 0; a < list.size(); a ++);

また、ifの後

if(typeReturned == list.get(a));

両方を削除すると、機能します

于 2013-01-29T17:46:18.827 に答える
2

ifandforステートメントの後のセミコロンを削除します。

for(int a = 0; a < list.size(); a ++);   
if(typeReturned == list.get(a));

for loop および if ステートメントは、後にセミコロンを置く完全なステートメントではありません。それらは、それらの後のブロックまたは行をチェックして実行するための条件文です。

于 2013-01-29T17:48:32.407 に答える
0

if および for ステートメントからセミコロンを削除します。

于 2013-03-21T15:08:07.820 に答える
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);

    }

    }

お役に立てれば。

于 2013-01-29T17:54:26.457 に答える