Android白虹剑之EditView之非法输入

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229


白虹剑

        殷天正从身旁包袱中取出一口长剑,对张无忌道:“这柄白虹剑送了给你,这剑虽不如老贼尼的倚天剑有名,但也是江湖上罕见的利器。”说着伸指在剑刃上一弹,那剑陡地弯了过来,随即弹直,嗡嗡作响,声音清越。

        今天我们学习如何在Android平台“白虹剑”EditView中输入特定的字符,并且具有校验功能。类似于Java EE应用前端程序校验用户输入的内容是否符合当前表单对应输入域所支持数据类型。下面给出该情景的案例:

一、案例技术要点

EditText布局设置
android:digits:接收输入字符为数字、小写字母。
android:inputType:接收输入字符为数字、email。
android:numeric:接收输入字符为有符号的浮点数。

二、案例代码陈列

工程包目录


AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.edittext"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".EditTextMainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>
strings.xml
<resources>
    <string name="app_name">EditText输入特定字符,并校验</string>
    <string name="btn">确认</string>
    <string name="tv1">输入数字(android:digits)</string>
    <string name="tv2">输入小写字母(android:digits)</string>
    <string name="tv3">输入数字(android:inputType)</string>
    <string name="tv4">输入Email(android:inputType)</string>
    <string name="tv5">输入有符号的浮点数(android:numeric)</string>
</resources>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/tv1" />
    <EditText android:id="@+id/et1"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:digits="0123456789" />
    
    <TextView android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/tv2" />
    <EditText android:id="@+id/et2"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:digits="abcdefghijklmnopqrstuvwxyz" />
    
     <TextView android:id="@+id/tv3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/tv3" />
    <EditText android:id="@+id/et3"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:inputType="number|textCapCharacters" />
    
    <TextView android:id="@+id/tv4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/tv4" />
    <EditText android:id="@+id/et4"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:inputType="textEmailAddress" />
    
    <TextView android:id="@+id/tv5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/tv5" />
    <EditText android:id="@+id/et5"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:numeric="decimal|signed" />
    
    <Button android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/btn" />
</LinearLayout>
EditTextMainActivity.java
package com.android.edittext;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

/**
 * EditText案例二:输入特定的字符,并实现校验功能
 * @author lynnli1229
 */
public class EditTextMainActivity extends Activity {
    private EditText et1;
    private Button btn;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        et1 = (EditText) findViewById(R.id.et1);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                String value = et1.getText().toString();
                if(value==null || value.trim().equals("")) {
                    et1.setError("请输入内容!");
                    return;
                }
            }
        });
    }

}
三、案例效果展示
 
原文地址:https://www.cnblogs.com/innosight/p/3271179.html