このレイアウトの非常に単純なfragmentDialogがあります。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/note"
android:layout_width="wrap_content"
android:layout_marginRight="25dp"
android:layout_marginLeft="25dp"
android:layout_height="wrap_content">
<EditText
android:id="@+id/post_it_note_area"
android:layout_width="match_parent"
android:layout_height="200dp"
android:textColor="@color/gray_text_primary"
android:textSize="16sp"/>
しかし、editTextに数字を入力すると、キーボードは自動的に閉じます。私が得るログから:
W/ViewRootImpl? Dropping event due to no window focus: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_7, scanCode=0, metaState=0, flags=0x6, repeatCount=0, eventTime=1548366109, downTime=1548366109, deviceId=-1, source=0x0 }
W/IInputConnectionWrapper? showStatusIcon on inactive InputConnection
私はMotoX2013でandroid4.4.4を実行しています。この奇妙な動作の原因は何ですか?キーボードが隠れないようにするにはどうすればよいですか?
編集:数字を数字にすると閉じるのはキーボードではなく、アプリ全体です(クラッシュはありません)。また、文字の近くに数字を入力した場合ではなく、数字を単独で入力した場合にアプリが閉じることに気付きました:「helloa6」-> ok、「hello6」->すぐに閉じます)。editTextにtextwatcherを追加しましたが、リスナーのメソッドがトリガーされません。助けてください!
編集2: Android5を搭載したSamsungS5で試してみましたが、問題が発生していません。Androidのバージョンまたはデバイスに関連している可能性がありますか?
編集3:悪いニュースです。削除キーまたは「Sym」キーを入力すると、S5で問題が再び発生します。以前と同じように、アプリが閉じます。
わかりました。最後に、この動作の原因を見つけました。
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
getActivity().finish();
return true;
}
});
return dialog;
}
戻るキーを押してdialogFragmentを閉じるためにこのコードを作成しましたが、明らかにバグがあります。奇妙なことに、これから任意の文字を入力してアクティビティを終了することが期待されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加