android触摸外部关闭键盘,如何隐藏Android上的软键盘,点击外部EditText?
下面的代碼片段簡單地隱藏了鍵盤:public?static?void?hideSoftKeyboard(Activity?activity)?{
InputMethodManager?inputMethodManager?=
(InputMethodManager)?activity.getSystemService(
Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(
activity.getCurrentFocus().getWindowToken(),?0);}
您可以將其放在實用程序類中,或者如果要在活動中定義它,請避免使用活動參數(shù),或調(diào)用hideSoftKeyboard(this).
最棘手的部分是什么時候叫它。您可以編寫一個方法來迭代View在您的活動中,并檢查它是否為instanceof EditText如果它不是注冊setOnTouchListener所有的東西都會就位。如果您想知道如何做到這一點,這實際上是相當(dāng)簡單的。下面是您所做的工作,您可以編寫如下所示的遞歸方法,實際上您可以使用它來做任何事情,比如安裝自定義字體等等.這是方法public?void?setupUI(View?view)?{
//?Set?up?touch?listener?for?non-text?box?views?to?hide?keyboard.
if?(!(view?instanceof?EditText))?{
view.setOnTouchListener(new?OnTouchListener()?{
public?boolean?onTouch(View?v,?MotionEvent?event)?{
hideSoftKeyboard(MyActivity.this);
return?false;
}
});
}
//If?a?layout?container,?iterate?over?children?and?seed?recursion.
if?(view?instanceof?ViewGroup)?{
for?(int?i?=?0;?i?
View?innerView?=?((ViewGroup)?view).getChildAt(i);
setupUI(innerView);
}
}}
僅此而已,只需在您之后調(diào)用此方法即可。setContentView在你的活動中。如果您想知道您將傳遞哪個參數(shù),則是id父容器的。分配id到父容器,如
...
打電話setupUI(findViewById(R.id.parent))僅此而已。
如果您想有效地使用它,您可以創(chuàng)建一個擴(kuò)展Activity并將此方法放入應(yīng)用程序中,并使應(yīng)用程序中的所有其他活動擴(kuò)展該活動并調(diào)用其setupUI()在onCreate()方法。
希望能幫上忙。
如果使用了多個活動,請定義公共id到父級布局,如 ...
然后將類擴(kuò)展到Activity并定義setupUI(findViewById(R.id.main_parent))在其OnResume()并擴(kuò)展該類,而不是“活動”in your program
總結(jié)
以上是生活随笔為你收集整理的android触摸外部关闭键盘,如何隐藏Android上的软键盘,点击外部EditText?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android重写方法,android中
- 下一篇: android插件框架机制的选择,And