1

Android の SoftKeyboard から Show/Hidden イベントを取得する必要があります。

調査を行いましたが、何も機能しませんでした。

低解像度のタブレット 5.0 で作業しているため、それが必要だったので、EditText を編集すると、キーボードが全画面表示になり、[Enter] または [Next] キーを押すか、戻るボタンをクリックしてキーボードを非表示にします...いくつかのフィールドを新しい値で更新する必要がありますが、TextWatcher を使用することはできません。ユーザーが実際に入力を終了したとき。

また、onFocusChanged はオプションではありません。これは、顧客が次のフィールドをクリックして新しい値を表示するためにキーボードを非表示にする必要がないようにするためです。

onTouchEvent もオーバーライドしたくありません。ユーザーがクリックした場所が、編集中のフィールドと同じではないかどうかを確認してください。

私が求めている特定の問題と、より具体的な解決策について申し訳ありません。

そして私の下手な英語でごめんなさい:D

4

2 に答える 2

4

ツリービューオブザーバーを使用してビューの高さの変化を検出し、そのときにキーボードの状態を確認できます

                final View activityRootView = findViewById(R.id.chat_pane_root_view);
                activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener()
                {
                    @Override
                    public void onGlobalLayout()
                    {
                        InputMethodManager mgr = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
                        if(mgr.isAcceptingText())
                        {
                             //keyboard is up
                        }
                    }
                });
于 2013-03-08T11:45:52.173 に答える
-1

まず第一に、このようなマニフェストファイル宣言でのアクティビティの宣言で

<activity android:name="Map"  android:windowSoftInputMode="stateHidden">

このプロパティから、キーボードが非表示になります。この後、main.xml ファイル edittext で imeOption プロパティを次のように宣言します。

<EditText
                    android:id="@+id/edttexttitle"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="5dp"
                    android:layout_marginTop="5dp"
                    android:hint="@string/tasktitle"
                    android:imeOptions="actionNext"
                    android:inputType="text"
                    android:textSize="@dimen/font_size_medium"
                    android:textColor="@color/darkgray1" />

このコードは、複数の場合は最初の編集テキスト用であり、編集テキストが1つしかない場合は、編集テキストのimeOptionを次のように変更する必要があります

android:imeOptions="actionGo"
于 2012-09-04T14:14:28.697 に答える