DialogFragment et force à afficher le clavier

J'ai un problème avec mon DialogFragment. Donc, pour créer mon point de vue, j'utilise la méthode décrite sur le blog Android. Voici mon DialogFragment

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View myLayout = inflater.inflate(R.layout.dialog_connect, null); edit = (EditText) myLayout.findViewById(R.id.password_edit); edit.requestFocus(); getDialog().getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); return myLayout; } 

Si j'utilise onCreateView (), cela fonctionne mais j'aimerais créer un AlterDialog et, pour ce faire, j'ai le code suivant:

  • Android - Google Spreadsheet Api
  • Comment ajouter un défilement pour une vue personnalisée dans Android
  • Comment utiliser la caméra Android avec OpenGL ES pour fonctionner?
  • Visionneuse Android avec connexion https et authentification basique. Comment cela fonctionne-t-il?
  • Pourquoi est-il important de définir la charge utile du développeur avec la facturation dans l'application?
  • Java.lang.NoClassDefFoundError: résolution échouée de: Landroid / support / v4 / os / BuildCompat
  •  @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Inflate and set the layout for the dialog // Pass null as the parent view because its going in the dialog layout builder .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { callback.onYesConnectClick(edit.getText().toString()); } }) .setNegativeButton(R.string.refuse, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { callback.onNoConnectClick(); } }); return builder.create(); } 

    Si je commentais le code de onCreateView (), l'application fonctionne mais je ne peux pas forcer le clavier à être affiché et si je décompose onCreateView (), j'obtiens un crash. Voici la trace de la pile:

     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test/com.test.ProfileActivity_}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content AndroidRuntime at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2312) AndroidRuntime at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2362) AndroidRuntime at android.app.ActivityThread.access$600(ActivityThread.java:156) AndroidRuntime at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1250) AndroidRuntime at android.os.Handler.dispatchMessage(Handler.java:99) AndroidRuntime at android.os.Looper.loop(Looper.java:137) AndroidRuntime at android.app.ActivityThread.main(ActivityThread.java:5229) AndroidRuntime at java.lang.reflect.Method.invokeNative(Native Method) AndroidRuntime at java.lang.reflect.Method.invoke(Method.java:525) AndroidRuntime at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799) AndroidRuntime at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566) AndroidRuntime at dalvik.system.NativeStart.main(Native Method) AndroidRuntime Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content 

    Donc, ma question ==> Puis-je utiliser AlertDialog et afficher le clavier lorsque la boîte de dialogue apparaît?

  • Qu'est-ce que createChooser quand je dois utiliser les Intents? Que puis-je faire avec cette méthode?
  • Ajouter automatiquement l'activité à Manifest?
  • Comment arrêter HttpURLConnection se connecter sur Android
  • Android android.provider.MediaStore.ACTION_VIDEO_CAPTURE return null onActivityResult avec nexus 7
  • Lire la vidéo m3u8 dans Android
  • Comment faire une activité, ne couvrant pas l'écran complet
  • 4 Solutions collect form web for “DialogFragment et force à afficher le clavier”

    onActivityCreated dans votre dialogue de dialogue et met getDialog().getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); Là-bas

    La réponse de tyczj ne fonctionne pas pour moi.

    La solution était, à l'intérieur deCreateDialog

     Dialog d = builder.create(); d.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); return d; 

    En fin de compte, le code serait comme ça

     @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Inflate and set the layout for the dialog // Pass null as the parent view because its going in the dialog layout builder .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { callback.onYesConnectClick(edit.getText().toString()); } }) .setNegativeButton(R.string.refuse, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { callback.onNoConnectClick(); } }); Dialog d = builder.create(); d.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); return d; } 

    Utilisez "SOFT_INPUT_STATE_ALWAYS_VISIBLE" au lieu de "SOFT_INPUT_STATE_VISIBLE" dans la méthode onActivityCreated ou onCreateDialog .

    Faites attention à l'appel setLayout() si vous l'utilisez. Il m'a fallu un certain temps pour me rendre compte que cela pourrait annuler les attributs de votre fenêtre. Après l'avoir placé dans un gestionnaire, la solution acceptée a fonctionné pour moi.

     @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Dialog dialog = super.onCreateDialog(savedInstanceState); dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); return dialog; } @Override public void onStart() { super.onStart(); // without a handler, the window sizes itself correctly // but the keyboard does not show up new Handler().post(new Runnable() { @Override public void run() { getDialog().getWindow().setLayout(DIALOG_WIDTH, DIALOG_HEIGHT); } }); } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.