17

私はDroidIncredibleで開発しています(そして1.5 AVDエミュレーターでもテストしました)。タブウィジェットのタブの1つは、リストビューと、編集テキストと送信ボタン(チャット機能用)のある行で構成されています。 。[送信]をクリックすると、以下を使用してソフトキーボードを閉じますが、機能しません。これは、他の場所で人々が正しいと投票したコードと同じです。

私が行方不明になっているものがありますか?

// in Button's onClick():
EditText chatTextBox = (EditText) findViewById(R.id.chat_entry);
// Handle button click ...
chatTextBox.setText("");

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(chatTextBox.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);

また、フラグを0に変更してみました。運が悪いです。誰もが何が起きているのか知っていますか?

****編集****私が元々 .hideSoftInputFromInputMethod()の代わりに使用していたことに気づきましたhideSoftInputFromWindow()。それを変更しても機能しませんでした...

4

4 に答える 4

24

HIDE_IMPLICIT_ONLYを0に変更すると、(からに変更した後hideSoftInputFromWindow())それが行われましたhideSoftInputFromInputMethod()

ただし、メニューを長押ししてキーボードを明示的に開いていないため、HIDE_IMPLICIT_ONLYが機能しない理由がわかりません。

于 2010-05-09T01:31:09.620 に答える
15

AndroidManifest.xmlファイルでのアクティビティを防ぐための別のオプション

android:windowSoftInputMode = "stateAlwaysHidden"-このメソッドは、アクティビティがロードされたときにキーボードがロード/表示されないようにします。ただし、edittextなどの編集可能なコンポーネントをクリックすると、キーボードが開きます。私の要件に最適です。

<activity
            android:name=".Name"
            android:label="@string/app_name" 
            android:windowSoftInputMode="stateAlwaysHidden">
于 2012-05-18T22:04:50.850 に答える
13

1.最初に編集テキストトークンをキーボードでバインドして開きます。
つまり、 inputMethodManager.showSoftInput(_edittext, 0);//ここで_edittextはビューのインスタンスです

2.編集テキストが画面から非表示になると、キーボードは自動的に非表示になります

3.edit textはまだ画面に表示されていますが、キーボードを非表示にしてから以下のコードを使用します imm.hideSoftInputFromWindow(_edittext.getWindowToken(), 0);// edittextが画面に表示されていないか、フォーカスされていない場合、これは機能しません。

于 2013-11-19T13:43:49.500 に答える
0

onResume/onCreateで実行してみてください。

rootView.requestFocus();

rootViewがメインビューです。これにより、フォーカスがEditTextから離れます。

于 2021-02-21T14:02:45.963 に答える