Je personnalise DatePickerDialog pour ajouter certaines de mes fonctionnalités pour DatePicker natif. Cela fonctionne comme prévu. Mais les champs jour, mois et année de DatepickerDialog sont modifiables par défaut. donc quand je me concentre ces champs de saisie modifiables clavier souple sera ouvert par défaut et utilisé sera en mesure d'éditer la date/mois/année et lorsque l'utilisateur éditer le jour/mois/année et appuyez sur set/annuler date d'édition DatePickerDialog se ferme et la fonctionnalité fonctionne correctement. Ici, mon problème est lorsque l'utilisateur édite le jour/mois/année et appuie sur set/cancel date d'édition DatePickerDialog se ferme et le softkeyboard est toujours ouvert. il ne se ferme pas dès que DatePickerDialog est fermé. donc pour cela j'ai essayé de cacher le softkeyboard avec le code suivant.comment cacher le softketboard quand DatePickerDialog est ouvert sur l'écran
private DialogInterface.OnDismissListener myOnDismissListener = new DialogInterface.OnDismissListener() {
public void onDismiss(DialogInterface dialog) {
InputMethodManager imm = (InputMethodManager) ((Activity) ctContext)
.getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(this.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
}
};
Mais cela ne fonctionne pas. J'ai donc essayé de basculer le softkey avec le code suivant.
private DialogInterface.OnDismissListener myOnDismissListener = new DialogInterface.OnDismissListener() {
public void onDismiss(DialogInterface dialog) {
InputMethodManager imm = (InputMethodManager) ((Activity) ctContext)
.getSystemService(Activity.INPUT_METHOD_SERVICE);
if(imm.isActive())
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
}
};
Mais ici, imm.isActive() retourne toujours false. si j'enlève que if (imm.isActive()) conditionne son fonctionnement quand le softkeyboard est ouvert. mais lorsque le clavier logiciel n'est pas ouvert et utilisé, il suffit d'ouvrir DatePickerDialog et de définir ou d'annuler la date en changeant avec les flèches. Le clavier logiciel s'ouvre en cas d'échec de DatePickerDialog. Donc j'ai besoin d'obtenir cette valeur imm.isActive() correctement. mais c'est toujours faux.
Alors, s'il vous plaît aidez-moi à obtenir la bonne façon de décider si le clavier est ouvert ou non.