ssummeraw 2013-05-08 01:49 采纳率: 10%
浏览 3718

测试字段是否为空并预防用户将空字段输入sqlite数据库

如何测试该字段不是空值呢? 我想让程序显示一个提示:用户已经完全填充好所有字段,但是下面这段代码还会显示其他情况,比如name值为null, number有值的情况。

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;

    }
}// end onclick
  • 写回答

1条回答 默认 最新

  • franzhong 2013-05-08 04:27
    关注

    你意思,用户确实是填上值了,但是name却是空的,对吗?

    String name = sqlName.getText().toString();
    String number = sqlNumber.getText().toString();
    

    你得从这两句往前查了,确定两点,1:name为null? 2:number确实是"输入"的值?
    可打个Log跟踪一下
    //个人建议入DB的话,String还是去空格后,查length好点

    评论

报告相同问题?

悬赏问题

  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致