2 baifaxiaoyao baifaxiaoyao 于 2012.12.06 11:44 提问

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
liangchichexin   2012.12.06 13:17
已采纳

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

if(!name.trim().equals("") && !number.trim().equals("")){
 }
baifaxiaoyao
baifaxiaoyao 我的问题。没什么问题,卸载重装一遍就好了。
5 年多之前 回复
liangchichexin
liangchichexin 你可以试试消减字符串
5 年多之前 回复
baifaxiaoyao
baifaxiaoyao 如果我只是在名字那里输入了一个数字和一个空的字符串,它还是input
5 年多之前 回复
cytown
cytown   2012.12.06 12:03

TextUtils.isEmpty(name)
TextUtils.isEmpty(name)
TextUtils.isEmpty(name)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!