Je construis une application Android et je suis confronté à 2 problèmes. J'utilise actuellement la méthode onKey pour analyser une zone de texte pour extraire les données tapées par l'utilisateur. Cela fonctionne correctement, mais si l'utilisateur choisit de laisser la zone de texte vide et d'envoyer les données, cela provoquera le blocage de l'application. Je voudrais ajouter un essai et attraper pour manipuler/ignorer cette exception et envoyer rien s'il y a un blanc même si la touche d'entrée est pressée.onKey et les exceptions
Mon deuxième problème se produit lorsque j'appuie sur la touche Entrée. Cette cause d'envoyer les données 2 fois et c'est un peu ennuyeux. Je pense que c'est parce qu'il n'y a pas de blocage dans mon code et que le programme enregistre une pression sur une touche et une libération de clé. Je ne sais pas vraiment comment filtrer cela et j'ai besoin de quelques entrées.
Voici mon code:
//Listen to the "Enter" button state changes by user selection of keypad
txtSetKp.setOnKeyListener(new OnKeyListener(){ //This method waits for the "enter" key to be hit
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
switch(arg1)
{
case KeyEvent.KEYCODE_ENTER:
float newSetKp = Float.parseFloat(txtSetKp.getText().toString());
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); //If "enter" pressed, hide keyboard
if(btSocket != null && btSocket.isConnected()){
mConnectedThread.send("P" + newSetKp);
Log.e(TAG, "P"+newSetKp);
}
imm.hideSoftInputFromWindow(txtSetPoint.getWindowToken(), 0);
return true;
default:
return false;
}
}
});
//Listen to the "Enter" button state changes by user selection of keypad
txtSetKi.setOnKeyListener(new OnKeyListener(){ //This method waits for the "enter" key to be hit
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
switch(arg1)
{
case KeyEvent.KEYCODE_ENTER:
float newSetKi = Float.parseFloat(txtSetKi.getText().toString());
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); //If "enter" pressed, hide keyboard
mConnectedThread.send("I" + newSetKi);
imm.hideSoftInputFromWindow(txtSetPoint.getWindowToken(), 0);
return true;
default:
return false;
}
}
});
Merci pour votre aide!
votre logcat Pouvez-vous poster s'il vous plaît? – Vinay
Bien sûr, j'ai essayé de le poster avec une copie/passé, mais le formatage était assez laid est-il un moyen de le faire correctement? – Mathieu660