我有2個edittext字段,它需要項目名稱(字符串)和數量(整數)。如果用戶在兩個字段中都沒有輸入任何內容,或者即使只有一個字段爲空,我想顯示「請輸入項目」或「請輸入數量」的敬酒。它創建並出錯。這是下面的代碼片段:如何確保edittext字段不爲空?
public void onClick(DialogInterface dialog, int id) {
String item = itemET.getText().toString();
int quantity = Integer.parseInt(quantityET.getText().toString());
if(itemET.equals("")){
Toast t =Toast.makeText(GroceryList.this, "Please enter item", 5000);
t.show();
}
if(quantityET.equals("")){
Toast t =Toast.makeText(GroceryList.this, "Please enter quantity or enter 0 if none", 5000);
t.show();
}
,這裏是在logcat的錯誤:
09-19 10:01:51.766: E/AndroidRuntime(527): FATAL EXCEPTION: main
09-19 10:01:51.766: E/AndroidRuntime(527): java.lang.NumberFormatException: unable to parse '' as integer
09-19 10:01:51.766: E/AndroidRuntime(527): at java.lang.Integer.parseInt(Integer.java:362)
09-19 10:01:51.766: E/AndroidRuntime(527): at java.lang.Integer.parseInt(Integer.java:332)
09-19 10:01:51.766: E/AndroidRuntime(527): at com.mexican.recipes.GroceryList$1$1.onClick(GroceryList.java:60)
09-19 10:01:51.766: E/AndroidRuntime(527): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:159)
09-19 10:01:51.766: E/AndroidRuntime(527): at android.os.Handler.dispatchMessage(Handler.java:99)
09-19 10:01:51.766: E/AndroidRuntime(527): at android.os.Looper.loop(Looper.java:123)
09-19 10:01:51.766: E/AndroidRuntime(527): at android.app.ActivityThread.main(ActivityThread.java:3683)
09-19 10:01:51.766: E/AndroidRuntime(527): at java.lang.reflect.Method.invokeNative(Native Method)
09-19 10:01:51.766: E/AndroidRuntime(527): at java.lang.reflect.Method.invoke(Method.java:507)
09-19 10:01:51.766: E/AndroidRuntime(527): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-19 10:01:51.766: E/AndroidRuntime(527): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-19 10:01:51.766: E/AndroidRuntime(527): at dalvik.system.NativeStart.main(Native Method)
+1代碼乾淨,但數量= Integer.parseInt(「a」);會崩潰的代碼:)爲什麼Integer.parseInt(quantityString);在if(quantityString.equals(「」))? :) – 2012-09-20 02:48:41
哎呀混淆起來,也習慣於寫檢查*不*是一個空字符串:P現在將修復它 – Xono
@ Xono,我確實使用了Lucifer的第一個代碼,他聲明quantity = 0;這使得我的應用程序設置整數默認爲0,如果沒有輸入。他刪除了這個答案。但對我來說足夠好。但是在檢查你的代碼後,它會更好,因爲它顯示了我想要的敬酒。但它會自動從alertdialog中出來。無論如何,當alertdialog仍在那裏時,這些吐司會顯示? – omi0301