1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android触摸外部关闭键盘 如何隐藏Android上的软键盘 点击外部EditText?

android触摸外部关闭键盘 如何隐藏Android上的软键盘 点击外部EditText?

时间:2021-05-09 17:45:30

相关推荐

android触摸外部关闭键盘 如何隐藏Android上的软键盘 点击外部EditText?

下面的代码片段简单地隐藏了键盘:publicstaticvoidhideSoftKeyboard(Activityactivity){

InputMethodManagerinputMethodManager=

(InputMethodManager)activity.getSystemService(

Activity.INPUT_METHOD_SERVICE);

inputMethodManager.hideSoftInputFromWindow(

activity.getCurrentFocus().getWindowToken(),0);}

您可以将其放在实用程序类中,或者如果要在活动中定义它,请避免使用活动参数,或调用hideSoftKeyboard(this).

最棘手的部分是什么时候叫它。您可以编写一个方法来迭代View在您的活动中,并检查它是否为instanceof EditText如果它不是注册setOnTouchListener所有的东西都会就位。如果您想知道如何做到这一点,这实际上是相当简单的。下面是您所做的工作,您可以编写如下所示的递归方法,实际上您可以使用它来做任何事情,比如安装自定义字体等等.这是方法publicvoidsetupUI(Viewview){

//Setuptouchlistenerfornon-textboxviewstohidekeyboard.

if(!(viewinstanceofEditText)){

view.setOnTouchListener(newOnTouchListener(){

publicbooleanonTouch(Viewv,MotionEventevent){

hideSoftKeyboard(MyActivity.this);

returnfalse;

}

});

}

//Ifalayoutcontainer,iterateoverchildrenandseedrecursion.

if(viewinstanceofViewGroup){

for(inti=0;i

ViewinnerView=((ViewGroup)view).getChildAt(i);

setupUI(innerView);

}

}}

仅此而已,只需在您之后调用此方法即可。setContentView在你的活动中。如果您想知道您将传递哪个参数,则是id父容器的。分配id到父容器,如

...

打电话setupUI(findViewById(R.id.parent))仅此而已。

如果您想有效地使用它,您可以创建一个扩展Activity并将此方法放入应用程序中,并使应用程序中的所有其他活动扩展该活动并调用其setupUI()在onCreate()方法。

希望能帮上忙。

如果使用了多个活动,请定义公共id到父级布局,如 ...

然后将类扩展到Activity并定义setupUI(findViewById(R.id.main_parent))在其OnResume()并扩展该类,而不是“活动”in your program

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。