我創建了這個方法來處理創建警報對話框的兩種不同方式,這取決於互聯網的狀態。你知道更好的方式來獲得相同的結果嗎?在if-else塊中的字符串上使用.equals()似乎不是最佳實踐方式......我是對的嗎?你知道更好的方法來寫這種方法嗎?
public void noInternetAlertDialog(String errorMsg) {
String title = null;
String msg = null;
if (errorMsg.equals("none")) {
title = "Connection failded";
msg = "Please check internet connection";
} else if (errorMsg.equals("slow")) {
title = "Connection timeout";
msg = "Connection is slow";
}
AlertDialog.Builder builder;
builder = new AlertDialog.Builder(Main.this);
builder.setCancelable(false);
builder.setTitle(title);
builder.setMessage(msg);
builder.setPositiveButton("Retry", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
downloadDialog();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
您可以避免2個if檢查之一。如果是'「none」',只要是**,**其他**(不是** else if **),則執行另一個塊。更好的是,你可以初始化字符串值,就像'else values'一樣,只有'none'時纔會改變它們。 – 2014-11-03 10:51:24