如何为android中的编辑文本代码添加验证?

时间:2015-11-15 07:23:26

标签: android validation

我正在为数据库做一个程序。我创建了三个编辑文本,用于添加员工ID,姓名和电话号码。问题是,当我按下添加按钮而不插入任何值时,应用程序崩溃。我该如何处理?以下是我编写的代码。

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    switch (v.getId()){

    case R.id.btn_add:

        Model india = new Model();
        india.id=Integer.parseInt(edit_empid.getText().toString());         // convet editable object from get text to string and then into integer
        india.name = edit_name.getText().toString();
        india.phone = edit_phone.getText().toString();


        db.addcontact(india);
        list = db.getAllContacts();
        print(list);
        edit_empid.setText(" ");
        edit_name.setText(" ");
        edit_phone.setText(" ");

        break;  

    case R.id.btn_delete:   

        long id = Long.parseLong(edit_empid.getText().toString());

        db.deletecontact(id);
        list = db.getAllContacts();
        print(list);

        break;

    case R.id.btn_update:   

        Model Japan = new Model();
        Japan.id=Integer.parseInt(edit_empid.getText().toString().trim());  
        Japan.name = edit_name.getText().toString();
        Japan.phone = edit_phone.getText().toString();

        int result = db.updatecontact(Japan);
        System.out.println("Print the update result " + result);
        list = db.getAllContacts();
        print(list);

        break;

    case R.id.btn_clear:

        edit_empid.setText(" ");
        edit_name.setText(" ");
        edit_phone.setText(" ");

        break;  






    }

}

}

4 个答案:

答案 0 :(得分:1)

最好的方法是使用base_obj.obj1.some_method()。谷歌在新的设计库中引入了它。要使用TextInputLayout,您必须将以下内容添加到build.gradle依赖项中:

TextInputLayout

然后在xml文件中使用它:

compile 'com.android.support:design:22.2.0'

在执行数据库工作之前,请使用if语句检查EditText值,如果不正确,请尝试:

<android.support.design.widget.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<EditText
    android:id="@+id/editText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="Enter your name"/>
</android.support.design.widget.TextInputLayout>

enter image description here

答案 1 :(得分:0)

只需在check - isempty中添加输入参数的if语句即可 多数民众赞成我的猜测

答案 2 :(得分:0)

用户输入总是邪恶的!在你的脑海里清楚地表明这一点你永远不能相信用户只将正确的东西放入你的输入。 所以只需检查每个输入。如果你想要没有空字符串,请通过

检查
String input1 = edittext1.getText();
if(1 > input1.length()) {
    // tell user to check edittext1
} else {
    // do your update stuff
}

每次输入都需要发生相同的事情。如果你是。 G。尝试获取int值,如果它们符合您的预期范围,请检查它们等等....

通过这个你不需要在清除em时将一个空格值放入你的editTexts ...(如果他想要正确设置编辑文本,则需要被用户删除( - &gt;邪恶的用户只是忽略空间并输入其名称,您必须先检查空间的前导或结束符号,然后再将其放入数据库中

提示:正则表达式字符串以确保输入正确;)

答案 3 :(得分:0)

有一个很好的库可以处理Android验证:

Android Saripaar v2