baifaxiaoyao 2012-12-06 03:44 采纳率: 100%
浏览 2271
已采纳

android-测试是否字段是空的,而且防止用户保存到sqlite

显示一个提示,他们必须把字段完全。但是这段代码仍然接受即使名字是null和号码是进入。
我怎么能够测试字段是否被用户填全?我想要显示一个提示,希望他们把字段都填全。但是下边这段代码,即使名字是空的,仍然是接收。

    public void onClick(View arg0)
    {
        switch(arg0.getId())
        {
        case R.id.bSQLUpdate:
            boolean diditwork = true;
            try
            {
            String name = sqlName.getText().toString();
            String number = sqlNumber.getText().toString();

            GroupDb entry = new GroupDb(ContactDb.this);
            entry.open();
            if(name != null && number != null)
            {
                if((!entry.hasDuplicateNameNumber(name, number)) )
                {
                    entry.createEntry(name, number);

                }
                else
                {
                    diditwork = false;
                    Dialog d = new Dialog(this);
                    d.setTitle("Error");
                    TextView tv = new TextView(this);
                    tv.setText("Duplicate name or number. Please try again.");
                    d.setContentView(tv);
                    d.show();
                    sqlName.setText("");
                    sqlNumber.setText("");
                }
            }
            else
            {
                diditwork = false;
                Dialog d = new Dialog(this);
                d.setTitle("Error");
                TextView tv = new TextView(this);
                tv.setText("Please fill up all fields. Please try again.");
                d.setContentView(tv);
                d.show();
                sqlName.setText("");
                sqlNumber.setText("");
            }

            entry.close();
            }
            catch(Exception e)
            {
                diditwork = false;
                String error = e.toString();
                Dialog d = new Dialog(this);
                d.setTitle("Update failed");
                TextView tv = new TextView(this);
                tv.setText(error);
                d.setContentView(tv);
                d.show();
                sqlName.setText("");
                sqlNumber.setText("");
            }
            finally
            {
                if(diditwork)
                {
                    Dialog d = new Dialog(this);
                    d.setTitle("Contact list updated");
                    TextView tv = new TextView(this);
                    tv.setText("Success");
                    d.setContentView(tv);
                    d.show();
                    sqlName.setText("");
                    sqlNumber.setText("");
                }
            }
            break;

        case R.id.bSQLOpenView:
            Intent intent = new Intent();
            intent.setClass(ContactDb.this, CustomListView.class);

            startActivityForResult(intent, 0);
            break;

        }

    }
  • 写回答

2条回答

  • liangchichexin 2012-12-06 05:17
    关注

    用null测试下你的字符串。当文本框是空的时候字符串的名字不是null,它是一个空字符串。所以像下边这个比较一下

    if(!name.trim().equals("") && !number.trim().equals("")){
     }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多