プログラムでフォーカスを渡す EditText があります。しかし、そうするときは、キーボードも表示する必要があります (そして、その EditText がフォーカスを失うとダウンします)。現在、ユーザーは EditText をクリックしてキーボードを表示する必要があります。EditText には既にフォーカスがありますが。
質問する
43617 次
5 に答える
23
<activity android:name=".YourActivity"
android:windowSoftInputMode="stateVisible" />
これをマニフェスト ファイルに追加します...
于 2013-08-14T17:04:54.830 に答える
19
これは、キーボードを表示する方法です。
EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
于 2013-08-14T16:59:52.813 に答える
7
マニフェストのアクティビティに対してこれを設定すると、画面に EditText ボックスが含まれているときにキーボードが自動的にポップされます
<activity android:windowSoftInputMode="stateAlwaysVisible" ... />
フォーカスを失ったときにキーボードを非表示にするには、 EditText の OnFocusChangeListener を設定します。
onCreate() で
EditText editText = (EditText) findViewById(R.id.textbox);
OnFocusChangeListener ofcListener = new MyFocusChangeListener();
editText.setOnFocusChangeListener(ofcListener);
このクラスを追加
private class MyFocusChangeListener implements OnFocusChangeListener {
public void onFocusChange(View v, boolean hasFocus){
if(v.getId() == R.id.textbox && !hasFocus) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
}
于 2013-08-14T17:05:32.120 に答える
6
キーボードを表示するには、次のコードを使用します。
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
キーボードを非表示にするには、以下のコードを使用します。et は EditText への参照です
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(et.getWindowToken(), 0);
于 2013-08-14T17:00:54.313 に答える
0
フォーカスリスナーに基づいてそれを行うには、次のようにする必要があります。
final InputMethodManager imm =(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
}else{
imm.hideSoftInputFromWindow(et.getWindowToken(), 0);
}
imm.toggleSoftInput(0, 0);
}
});
お役に立てれば。
よろしく!
于 2013-08-14T17:04:41.663 に答える