最近做公司项目的时候,经常会遇到一个问题,就是我为某个控件如EditText设置requestfocus()的时候不管用,比如说登陆的时候,我判断下用户输入的密码,如果正确就登陆,错误就提示密码错误,...))){ Toast.makeText(this,"密码错误,请重新输入",Toast.LENGTH_SHORT).show(); mPassWord.requestFocus...finish(); } } } 原因 查资料分析了一下,可能是以下问题: Android加载刷新UI的时候,是从左到右,从上到下的顺序,正在加载的过程中,如果此时requestFocus...(),的话,有可能此时还没把整个界面刷新好,导致requestFocus无效。...给他个延迟时间: mPassWord.postDelayed(new Runnable() { @Override public void run() { mPassWord.requestFocus
这节内容我们先从 requestFocus 入手: 在开发过程中,我们需要某个控件 View 进行聚焦,一般会主动调用该控件的 requestFocus 方法。...return requestFocus(View.FOCUS_DOWN); } 我们从源码中可以看到,requestFocus 接着会走到 requestFocusNoSearch 方法中,看方法名就能理解...接下来,我们继续分析下 ViewGroup.requestFocus 方法: @Override public boolean requestFocus(int direction...: {// 首先调用 super 的逻辑在自己中 requestFocus,如果自己请求焦点失败再遍历子 View 进行 requestFocus final boolean took...,如果请求焦点成功,则直接返回 true,至此,ViewGroup.requestFocus 也处理完毕了。
if (s.length() == 3) { if (Integer.parseInt(s.toString()) <= 255) { if (this.IP_Edit == ip_1) { ip_2.requestFocus...(); } if (this.IP_Edit == ip_2) { ip_3.requestFocus(); } if (this.IP_Edit == ip_3) { ip_4.requestFocus...s.length() == 0) { if (this.IP_Edit == ip_1) { ip_1.setText("0"); } if (this.IP_Edit == ip_2) { ip_1.requestFocus...(); ip_2.setText("0"); } if (this.IP_Edit == ip_3) { ip_2.requestFocus(); ip_3.setText("0"); } if (this.IP_Edit...== ip_4) { ip_3.requestFocus(); ip_4.setText("0"); } } } } } 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值
设置后,会在requestFocus(int direction, Rect previouslyFocusedRect) 方法里根据设置进行相应的处理。...来看下实现 public boolean requestFocus(int direction, Rect previouslyFocusedRect) { if (DBG) {...System.out.println(this + " ViewGroup.requestFocus direction=" + direction);...switch (descendantFocusability) { case FOCUS_BLOCK_DESCENDANTS: return super.requestFocus...took : super.requestFocus(direction, previouslyFocusedRect); } default:
length()=11) iPhone = phone.getText().toString().trim(); SMSSDK.getVerificationCode(86,iPhone); cord.requestFocus...();elseToast.makeText(MainActivity.this, 请 输 入 您 的 电 话 号 码 Toast.LENGTH_LONG).show();phone.requestFocus...; flag = false;elseToast.makeText(MainActivity.this, 请 输 入 完 整 验 证 码 Toast.LENGTH_LONG).show();cord.requestFocus...16、this, 请 输 入 验 证 码 Toast.LENGTH_LONG).show();cord.requestFocus();break;default:break;/验证码送成功后提示文字 private...21、 , Toast.LENGTH_SHORT).show();phone.requestFocus();else(Throwable) data).printStackTrace();int resId
FOCUS_BEFORE_DESCENDANTS: 当ViewGroup调用requestFocus时总是优先让自己成为焦点视图。...FOCUS_AFTER_DESCENDANTS: 当ViewGroup调用requestFocus时优先让里面的子视图成为焦点,只有子视图无法成为焦点时才让自己成为焦点视图。这个特性也是默认特性。...通过setDescendantFocusability和requestFocus方法的配合就可以解决那种只有一个EditText且一进入就自动键盘弹出的问题。...视图树加载时的焦点视图的遍历 在窗口里的视图第一次被装载时系统会调用ViewRoot的doTraversal,这个函数内部会调用根视图的requestFocus方法: if (!...mView.hasFocus()) { mView.requestFocus(View.FOCUS_FORWARD); } 。。。。。
则表明传参成功且后台返回值成功,即注册成功: 1 case R.id.register_complete: 2 if (user_name.length() < 1) { 3 user_name.requestFocus...= re_pwd.length()) { 18 re_password.requestFocus(); 19 re_password.setError("您两次输入的密码不一致!...请重新输入"); 20 re_password.setText(""); 21 return; 22 } 23 if (phone.length() < 1) { 24 phone.requestFocus...onClick(View v) { 2 // TODO Auto-generated method stub 3 if (user_name.length() < 1) { 4 user_name.requestFocus...(); 5 user_name.setError("请输入用户名"); 6 return; 7 } 8 if (password.length() < 1) { 9 password.requestFocus
{ Toast.makeText(jiafa_2_28Activity.this,"请输入答案",Toast.LENGTH_SHORT).show(); mEdit3.requestFocus...else{ Toast.makeText(jiafa_2_28Activity.this,"输入的是非整数",Toast.LENGTH_SHORT).show(); mEdit3.requestFocus...mBtn2.setOnClickListener(this); mRandom=new Random(); myRandom(); // 默认让焦点定位到mEdit3空间上 mEdit3.requestFocus...dite3)){ Toast.makeText(jiafa_2_28Activity.this,"请输入答案",Toast.LENGTH_SHORT).show(); mEdit3.requestFocus...}else{ Toast.makeText(jiafa_2_28Activity.this,"输入的是非整数",Toast.LENGTH_SHORT).show(); mEdit3.requestFocus
true"//这个是触摸是否能获得焦点,因为有的TV要求遥控 器和触摸都可以用,这时会用到 android:focusedByDefault="true"//设置默认焦点 低版本用不了,不过可以用requestFocus...true);//这个是触摸是否能获得焦点,因为有的TV要求遥控器和触摸都可以用,这时会用到 btnTest.setFocusedByDefault(true);//设置默认焦点 低版本用不了,不过可以用requestFocus...下一个获得焦点的控件为tv_test btnTest.setNextFocusRightId(R.id.tv_test);//当按右键时,下一个获得焦点的控件为tv_test btnTest.requestFocus
);// 刷新要显示的数据SystemController.getUserTable().showTableData(list);SystemController.getPanelProcess().requestFocus...);// 刷新要显示的数据SystemController.getUserTable().showTableData(list);SystemController.getPanelProcess().requestFocus...);// 刷新要显示的数据SystemController.getUserTable().showTableData(list);SystemController.getPanelProcess().requestFocus...);// 刷新要显示的数据SystemController.getUserTable().showTableData(list);SystemController.getPanelProcess().requestFocus
实现代码如下: //获取焦点 editText.setFocusable(true); editText.setFocusableInTouchMode(true); editText.requestFocus...所以需要适当的延迟一下软键盘的弹出 最终代码如下: //获取焦点 editText.setFocusable(true); editText.setFocusableInTouchMode(true); editText.requestFocus
(InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); if (isShow) { view.requestFocus...InputMethodManager imm = (InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); view.requestFocus
需要注意的是,并不能使用focusable(true)来达到将焦点赋予给某个输入框的操作,移动焦点需要使用focusControl.requestFocus(),而requestFocus需要的参数是输入框的... let nextIndex = index + 1 // 将焦点自动移动到下一个输入框 focusControl.requestFocus...key属性:为每个 TextInput 组件添加了 key 属性,以确保focusControl.requestFocus的正确触发,这里我们使用了 index 来生成唯一的键。...(nextKeyStr)使用requestFocus的确可以将焦点切换到下一个输入框,但是软键盘确收起来了!...false) .focusOnTouch(false) .onClick(() => { focusControl.requestFocus
videoView.setMediaController(mController); mController.setMediaPlayer(videoView);*/ videoView.requestFocus...videoView.setMediaController(mController); mController.setMediaPlayer(videoView);*/ videoView.requestFocus
flag) { view.requestFocus(); } return flag; } /** * 不为空时,验证str是否为正确的身份证格式 * * @param str * @return */...flag) { view.requestFocus(); } } return flag; } /** * 验证str是否为正确的身份证格式 * * @param str * @return */ public...; w.setFocusable(true); w.requestFocus(); return true; } return false; } public static boolean isNum(...; w.setFocusable(true); w.requestFocus(); return true; } return false; } public static boolean isEmail...; w.setFocusable(true); w.requestFocus(); return true; } return false; } // 可以空,非空时必须正确 public static
-- 默认输2个字符才能有提示 completionThreshold表示只输入1个字符后,就有提示 requestFocus表示界面展开时焦点直接在第二个文本框 -- <AutoCompleteTextView...layout_width="match_parent" android:layout_height="wrap_content" android:completionThreshold="1" <requestFocus
这个是选择好地址之后的界面,主要还是界面的转换跟焦点的获取 有时候setFocusable(true)跟setFocusableInTouchMode(true)并不能使控件获得焦点,要再之前加上一句requestFocus...jiequText.setFocusable(true); jiequText.setFocusableInTouchMode(true); jiequText.requestFocus...nameText.setFocusable(true); nameText.setFocusableInTouchMode(true); nameText.requestFocus...phoneText.setFocusable(true); phoneText.setFocusableInTouchMode(true); phoneText.requestFocus... phoneTextView.setText(myAddress.getPhone()); } postBtn.requestFocus
isFocused() 当前视图是否获得焦点 通常情况下有两种方法可以让视图获得焦点,即通过键盘的上下左右键切换视图,以及调用requestFocus()方法。...而现在的Android手机几乎都没有键盘了,因此基本上只可以使用requestFocus()这个办法来让视图获得焦点了。...而requestFocus()方法也不能保证一定可以让视图获得焦点,它会有一个布尔值的返回值,如果返回true说明获得焦点成功,返回false说明获得焦点失败。
JOptionPane.showMessageDialog(this, "第一个操作数不满足要求必须是数字"); this.firstNumber.setText(""); this.firstNumber.requestFocus...this, "第二个操作数不满足要求必须是数字"); this.secondNumber.setText(""); this.secondNumber.requestFocus...除数不能为0"); this.secondNumber.setText(""); this.secondNumber.requestFocus
i = 0; i--) { editText = (EditText) getChildAt(i); if (editText.getText().length() == 1) { editText.requestFocus...count; i++) { editText = (EditText) getChildAt(i); if (editText.getText().length() < 1) { editText.requestFocus...= mEditTextList.size() - 1) { currentPosition++; mEditTextList.get(currentPosition).requestFocus(); setBg...= 0 && action == KeyEvent.ACTION_DOWN) { currentPosition--; mEditTextList.get(currentPosition).requestFocus
领取专属 10元无门槛券
手把手带您无忧上云