0

setOnFocuslistener でフォーカスを失ったときにキーボードを非表示にしようとしています。何らかの理由で機能しません...これは私のxmlです:

<EditText
    android:id="@+id/AgePicker"
    android:layout_width="113dp"
    android:layout_column="2"
    android:layout_columnSpan="2"
    android:layout_gravity="left|bottom"
    android:layout_row="4"
    android:background="#ffffff"
    android:clickable="true"
    android:focusable="true"
    android:hint="@string/edit_message"
    android:singleLine="true"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@color/black_overlay" />

と私のコード:

setAge.setOnFocusChangeListener(new View.OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus) {
                String sAge = setAge.getText().toString();
                Age = Integer.parseInt(sAge);

                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(setAge.getWindowToken(), 0);

                if (Age < 0) {
                    Toast.makeText(DietActivity.this,
                            "Enter Computable Values", Toast.LENGTH_SHORT)
                            .show();

                }

            }

        }
    });

また、これらをxmlで使用します:

 android:focusable="true"
android:focusableInTouchMode="true"

私を助けてください。edittextがフォーカスを失ったときにキーボードが非表示になるようにするだけです

4

2 に答える 2

1

ちょっと些細なことでしたが、他のプールの魂に役立つかもしれない私の答えを投稿します...ここに私のコードがあります:

setAge.setOnFocusChangeListener(新しい OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            String sAge = setAge.getText().toString();

            if (isNumeric(sAge) ) {
                Age = Integer.parseInt(sAge);

                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(setAge.getWindowToken(), 0);

                if (Age < 0) {
                    Toast.makeText(DietActivity.this,
                            "Enter Computable Values", Toast.LENGTH_SHORT)
                            .show();
                }
            } 

        }
    });
于 2013-09-14T17:25:39.583 に答える
0

現在フォーカスがあるものによって異なります...別の editText がフォーカスを取得している場合、これはキーパッドを表示している可能性があります...別の要素に明示的にフォーカスを与えるようにしてください。

于 2013-06-04T13:29:55.583 に答える