2013-05-07 2 views
0

J'ai donc un edittext pour lequel j'essaye d'obtenir le clavier si celui-ci est dans la mise au point lorsqu'il est incliné.Le clavier android n'apparaît pas

Je travaille avec un appareil de Motorola, MC40. Version Android 2.3.4.

Je vérifie si elle est au point, j'ai débogué et j'ai vu que c'est la mise au point. J'ai essayé ce qui suit:

txtQuantity.selectAll(); 
    txtQuantity.requestFocus(); 

Tandis que cela fonctionne dans d'autres parties de mon programme, cela ne fonctionne pas dans cette activité.

L'édition du texte est activée, mais le texte n'est pas sélectionné et le clavier n'est pas présent. L'edittext est un peu à l'écran, sur d'autres activités c'est un peu plus haut. Je crois que c'est pourquoi le clavier ne montre pas, correct ou faux?

Si je force le clavier avec

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 

Ensuite, le clavier, il apparaît. Cependant, pour une raison étrange, ma boîte d'édition rétrécit maintenant à 1/3d de sa taille précédente et vous ne pouvez pas voir ce qui est écrit dedans!

Cette question commence à me parvenir.

Modifier:

Cet événement semble aider, comme un travail autour. Cependant, je reçois un popup me demandant de choisir entre 3 choix, words/all/inmethod. Si je choisis celui du milieu, cela fonctionne, mais j'ai besoin de faire cela par programme comment.

edittext.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0)); 

Le edittextbox

< EditText android: id = "@ + id/..." android: layout_width = "60dp" android: layout_height = "wrap_content" android : layout_alignLeft = "@ + id/..." android: layout_alignRight = "@ + id/..." android: layout_below = "@ + id/..." android: layout_marginTop = "10dp" andro id: layout_toRightOf = "@ + id/..." android: ems = "10" android: hint = "@ chaîne/..." android: imeOptions = "actionDone" android: inputType = "nombre" android: maxLength = "10" android: nextFocusUp = "@ + id/..." android: selectAllOnFocus = "true" />

+0

essayer de poster la mise en page XML. Cela pourrait finir par aider. – TronicZomB

Répondre

0

Vous pouvez essayer d'utiliser:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 

puis dans votre fichier manifeste, vous pouvez mettre ce qui suit dans le tag <activity>:

android:windowSoftInputMode="adjustPan" 
+0

Je l'ai dans mon manifeste: android: windowSoftInputMode = "stateHidden | adjustResize | adjustPan" – Johan

+0

Pourquoi 'stateHidden' puis-je demander? – TronicZomB

+0

La base de code est en partie héritée, pas sûr. J'ai changé pour ajuster seulement, mais pas différent. Le edittext get est réduit de moitié en le forçant avec getWindow(). SetSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); – Johan

0

Voici un code qui a fonctionné pour moi. J'ai eu un problème similaire, où je demanderais Focus sur mon EditText mais le clavier ne s'afficherait pas.

public static void showKeyboardForEditText(Context context, EditText editText) { 
    InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); 
} 

Voici le code si vous devez fermer le clavier:

public static void hideKeyboard(Context context, EditText editText) { 
    InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); 
} 
+0

Merci, essayé mais aucun clavier ne sort. – Johan

+0

c'est un plan long mais peut-être vérifier que android: focusable = "true" est défini dans le xml edittext dans votre mise en page? – speedynomads