当 EditText 空值时,EditText 却无法获得焦点和弹窗软键盘EditText 没有值是请问怎么 获得焦点 弹出软键盘
当 EditText 空值时,EditText 却无法获得焦点和弹窗软键盘
EditText 没有值是请问怎么 获得焦点 弹出软键盘?
由于是注册页面,第一次加载不想启动软键盘和焦点!所以我在 所有EditText的父级添加了
android:focusable="true"
android:focusableInTouchMode="true"
可以达到加载后 不获取焦点和软键盘弹窗。
我希望填写了信息之后判断了每一个EditText的值,在没有输入值的EditText 使其获得焦点 弹出软键盘!
以下是我的做法:
public class Reg extends Activity implements OnClickListener {
private Dialog dialog;
String mc;// 名称
String u;// 用户名
EditText u_mingcheng,u_user;
protected void onCreate(Bundle savedInstanceState) {
// TODO 自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.reg);
//
u_mingcheng = (EditText) findViewById(R.id.u_mingcheng);
u_user = (EditText) findViewById(R.id.u_user);
private void reg() {
mc = u_mingcheng.getText().toString();
u = u_user.getText().toString();
if (u_mingcheng.length() == 0 || u_user.length() == 0 ) {
if(u_mingcheng.length()== 0){
u_mingcheng.requestFocus();//获取焦点
u_mingcheng.requestFocusFromTouch();
System.out.println("1");
}
return;
}
以上是部分代码!
System.out.println("1"); 有执行到,但是 u_mingcheng 获取不到焦点 和 弹软键盘。
[解决办法]
UI绘画没有完成前获取焦点是无效的,所以别把reg放在oncreate方法里面,或者延迟几秒执行。
