最近项目中,在注册页面要实现判断用户是否输入了文字,两次密码是否一样,因此对用户填写的信息进行提示性的校验。
先看效果图
布局页面主要是在要显示提示的地方添加布局LinearLayout。里面是一个ImageView和一个TextView,默认设置为android:visibility=”gone”。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:background="#F6F5F4"
>
<ImageView
android:id="@+id/iv_tips"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:background="@drawable/icon_right_jiantou"
/>
<TextView
android:id="@+id/tv_tips"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="两次密码输入不同"
android:gravity="center_horizontal"
android:padding="8dp"
android:layout_margin="2dp"
android:textSize="16sp"
android:textColor="#ff0000"
android:background="#F6F5F4"
/>
</LinearLayout>
具体实现就是在代码中判断EditText是否为空,如果为空则显示控件,并且设置TextView的文字,在注册按钮的点击事件中实现具体逻辑:用户文本框有空的时候:
iv_tips.setVisibility(View.VISIBLE);//设置显示
tv_tips.setVisibility(View.VISIBLE);//设置显示
tv_tips.setText(“填写完整信息才能注册!”);//设置提示的文字
当两次输入密码不一致的时候就显示布局中的控件:
iv_tips.setVisibility(View.VISIBLE);
tv_tips.setVisibility(View.VISIBLE);
tv_tips.setText(“两次输入密码不一致!”);
这样就能动态显示提示,从而替代Toast的功能。
代码实现:
//手机号
String PhoneNumber = et_rg_mobile.getText().toString();
//第一次密码
String newPass = (et_rg_password.getText().toString());
//第二次输入密码
String againPass =(et_rg_password_again.getText().toString());
if (TextUtils.isEmpty(et_rg_mobile.getText())||TextUtils.isEmpty(et_rg_yanzhengma.getText()) ||TextUtils.isEmpty(et_rg_password.getText())||TextUtils.isEmpty(et_rg_password_again.getText())) {//判断文本框为空
iv_tips.setVisibility(View.VISIBLE);
tv_tips.setVisibility(View.VISIBLE);
tv_tips.setText("填写完整信息才能注册!");
return;
}
//两次密码一致
if ((againPass.equals(newPass))) {
iv_tips.setVisibility(View.GONE);
tv_tips.setVisibility(View.GONE);
}else {
iv_tips.setVisibility(View.VISIBLE);
tv_tips.setVisibility(View.VISIBLE);
tv_tips.setText("两次输入密码不一致!");
}
break;
}