开发者社区> 问答> 正文

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;

        }

    }

展开
收起
a123456678 2016-07-18 13:51:54 2048 0
1 条回答
写回答
取消 提交回答
  • 用null测试下你的字符串。当文本框是空的时候字符串的名字不是null,它是一个空字符串。所以像下边这个比较一下

    if(!name.trim().equals("") && !number.trim().equals("")){
    }

    2019-07-17 19:57:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
移动互联网测试到质量的转变 立即下载
给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
F2etest — 多浏览器兼容性测试整体解决方案 立即下载