私は同じ状況に陥っています。ここで私はあなたと共有します。私はCustomEditTextを使ってこれを解決しました。
CustomEditText.Java
public class CustomEditText extends android.support.v7.widget.AppCompatEditText {
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
OnKeyPreImeListener onKeyPreImeListener;
public void setOnKeyPreImeListener(OnKeyPreImeListener onKeyPreImeListener) {
this.onKeyPreImeListener = onKeyPreImeListener;
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
if(onKeyPreImeListener != null)
onKeyPreImeListener.onBackPressed();
return false;
}
return super.dispatchKeyEvent(event);
}
public interface OnKeyPreImeListener {
void onBackPressed();
}
}
MainActivity.Java
public class MainActivity extends BaseActivity{
private CustomEditText editSearchMenu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editSearchMenu =
(CustomEditText)findViewById(R.id.editSearchMenu);
//Initialise interface
CustomEditText.OnKeyPreImeListener onKeyPreImeListener=new CustomEditText.OnKeyPreImeListener() {
@Override
public void onBackPressed() {
((MainActivity)getActivity()).finish();
}
};
editSearchMenu.setOnKeyPreImeListener(onKeyPreImeListener);
}
}
xmlファイル
<com.app.helper.CustomEditText
android:id="@+id/editSearchMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/diam5dp"
android:background="@drawable/custom_rounded_edittext"
android:drawableLeft="@drawable/ico_search"
android:drawablePadding="@dimen/diam20dp"
android:drawableStart="@drawable/ico_search"
android:hint="@string/M_SEARCH_HINT"
android:padding="@dimen/diam10dp"
android:textColor="@android:color/white"
android:textColorHint="@android:color/white"
android:textSize="@dimen/diam16sp" />
・ホープ、このお手伝いをします...これは私の自己をテストしたすべてのデバイスで動作します...他のソリューションはいくつかのデバイスで問題を引き起こしています...他にもいくつかのソリューションがあります...もしあなたが私に知らせてくれたら...
アクティビティを閉じる前に、ソフトキーボードを閉じる必要があります。 – KeLiuyue
@KeLiuyue:私は、ユーザーがソフトキーボードと同じバックボタンを押すことでアクティビティを閉じるようにする方法がいくつか存在すると確信しています。 – Sid
私はそれを解決するためにいくつかのワイを試します。しかし、それは多くの要因に依存します。 – KeLiuyue