Android開発

【Android開発】イベント時にソフトウェアキーボードを表示したい

投稿日:

ソフトウェアキーボードを表示したい

ボタンを押すなどのイベント時にソフトウェアキーボードを表示させてユーザーに入力を促したい!!

今回はそんなイベント時にソフトウェアキーボードを表示させる方法について紹介。

以下のソースはボタンをタップしたらソフトウェアキーボードを表示させるというもの。

ただし!

表示したいActivityにEditableなViewを配置するのをお忘れなく。

上記の場合はshowIsogtInput()の引数であるeditTextを配置している。

ソフトウェアキーボードに入力された文字もそのままEditTextに反映される。

取得するにはTextWatcherのonTextChanged()などで自動で取得することができる。

参考:[Android] 入力を監視するTextWatcher|nyan のアプリ開発

 

popup window内で表示させる場合

popup window内で表示させるにはpopup windowにfocusしてあげる必要がある。

当然だが、popup windowレイアウト内にEditTextを配置するのをお忘れなく。

 

ViewにFocusが当たっているかどうか知りたい

EditTextにfocusが当たっているかどうか知るには下記のようにすればわかる。

返り値はboolean型。

 

Focusされているのにキーボードがでない

上記で紹介したfocus判定を確認するとtrueなのにキーボードがでないっていうこともあるかもしれない。

そんなときは親Viewのfocusを外してやると治るときがある。

ScrollVIewやListVIew、RecyclerView等の中にあるVIewの子Viewのイベントをしようとしたときに起こる。

自分がテストしたRecyclerVIew内の場合、案の定キーボードはでなかった(2かいタップするといけた。)

#kotlin  #SoftwearKeyboard  #popupWindow #Focus

-Android開発

Copyright© ガジェジー , 2018 All Rights Reserved.