案例
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/et_phone" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxLength="11" android:hint="请输入11位手机号码" android:inputType="number" android:background="@drawable/edit_selector9" android:layout_marginTop="10dp"/> <EditText android:id="@+id/et_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:maxLength="6" android:hint="请输入6位手机号码" android:inputType="numberPassword" android:background="@drawable/edit_selector9" /> <Button android:id="@+id/btn_login" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="登录"/> </LinearLayout>
et_phone = findViewById(R.id.et_phone);
et_password = findViewById(R.id.et_password);
// 给et_password注册一个焦点变化监听器
et_password.setOnFocusChangeListener(this);
//焦点变更的处理方法 // 为什么没有选onclick?因为要点两下才会触发onclick,第一下时切换焦点动作 public void onFocusChange(View v, boolean hasFocus) { // hasFocus 表示当前控件是否获得焦点 // if (v.getId() == R.id.et_password && hasFocus) if (hasFocus){ String phone = et_phone.getText().toString(); if(TextUtils.isEmpty(phone) || phone.length() < 11 ){ et_phone.requestFocus(); Toast.makeText(this,"请输入11位的手机号码",Toast.LENGTH_SHORT).show(); } } }