myc_100 2012-09-20 03:46 采纳率: 10%
浏览 17597
已采纳

如何确保输入文本框不能为空?

我的程序中2个文本框,分别是用来输入名称(字符串型)和数字(整型)。如果在两个文本框都没有输入信息或其中的一个文本框是空的,想有一个提示框显示“请输入内容”或“请输入数字”。程序总是出错,下面是代码片段:

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

这是日志中的错误信息:

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)

请大师们帮我看看问题出现在哪里?谢谢!

  • 写回答

3条回答

  • Curie-87 2012-09-20 06:40
    关注

    在这段代码中有两个独立的问题:在一个空串中调用把字符串转换成整型的方法会引发异常;在一个输入框中不能对字符串进行同级比较。代码应该这样写:

    public void onClick(DialogInterface dialog, int id) {
    
       String itemString = itemET.getText().toString();
       String quantityString = quantityET.getText().toString();
       int quantity;
    
       if(itemString.equals(""))
       {
          Toast t =Toast.makeText(GroceryList.this, "Please enter item", 5000);
          t.show();   
       }
    
       if(quantityString.equals("")){
          Toast t =Toast.makeText(GroceryList.this, "Please enter quantity or enter 0 if none", 5000);
          t.show();
       }
       else {
          quantity = Integer.parseInt(quantityString);
       }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 MapReduce实现倒排索引失败
  • ¥15 luckysheet
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题