2011-10-19 8 views
2

私はAsyncTaskに次のコードを書いています。 nameは "item"、 "setMax"、または "Creating Database(これは一回限りの関数)"のような文です。Else Android(Elseは常にアクティブ化)

私の問題は、コードに「item」を渡したときにコードが1ずつインクリメントされますが、メッセージが「item please wait ...」に設定されるときに発生します。 If/Else If/Elseを順番に実行する必要があるからだと思いますが、わかりません。より効率的な方法があるのですか、定数を定義してswitch文を使うべきですか?

protected void onProgressUpdate(String... name) { 
    if (name[0].equals("item")) { 
     mDialog.incrementProgressBy(1); 
    } if (name[0].equals("setMax")) { 
     mDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
     mDialog.setMax(Integer.parseInt(name[1])); 
    } else { 
     mDialog.setMessage(name[0] + " Please wait..."); 
    } 
} 

答えて

17

それはあなたがelseが欠けていることをあなたのインデントからになります。

if (name[0].equals("item")) { 
    ... 
} else if (name[0].equals("setMax")) { 
    ... 
} else { 
    ... 
} 
+0

かの他の内部と最後の他のコードがなかった場合、私は他に置くを欠落していましたあなたは私を助けることができます。 –

4
protected void onProgressUpdate(String... name) { 
    if (name[0].equals("item")) { 
     mDialog.incrementProgressBy(1); 
    }else if (name[0].equals("setMax")) { 
     mDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
     mDialog.setMax(Integer.parseInt(name[1])); 
    } else { 
     mDialog.setMessage(name[0] + " Please wait..."); 
    } 
} 

あなたが他の

+0

他の人があなたにそれを打ち負かす...しかし、私はまだあなたを強くした:) – easycheese