Bonjour,
Pour comprendre mon besoin :
*****************************
Mon application :
Stock disponible :80
Nouveau stock : 80-Valeur EditText
Nombre de sortie de stock : EditText
****************************
Je dois récupérer l'évenement sur les touches numériques du clavier, pour que des que la valeur du EditText change le nouveau stock (stock dispo - nombre sortie) soit mis a jour.
J'ai donc fait ce code :
Tout cela marche correctement, j'ai le résultat que je souhaite ! Seulement étant donné que c'est moi qui rajoute la valeur dans le EditText je perd le focus et il revient au début. Or je voudrais qu'il reste a la fin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 final EditText sortie_value = (EditText)alertDialogView.findViewById(R.id.nb_entres); //On ajoute un listener sur les champs texte pour lancer la recherche sur Enter sortie_value.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { int number_selected=0; if (event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_0){ number_selected=0; }else if(event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_1){ number_selected=1; }else if(event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_2){ number_selected=2; }else if(event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_3){ number_selected=3; }else if(event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_4){ number_selected=4; }else if(event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_5){ number_selected=5; }else if(event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_6){ number_selected=6; }else if(event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_7){ number_selected=7; }else if(event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_8){ number_selected=8; }else if(event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_9){ number_selected=9; } if (event.getAction()==KeyEvent.ACTION_DOWN){ sortie_value.setText(sortie_value.getText()+number_selected+""); String intermediraire=sortie_value.getText().toString(); if(!intermediraire.equals("")){ new_qte=Integer.parseInt(intermediraire); }else{ new_qte=0; } new_qte=Integer.parseInt(iNbQteSortie)-new_qte; new_quantite.setText(new_qte+""); return true; } return false; } });
J'espère avoir été le plus clair possible même si c'est pas évident !
****************************
EDIT
****************************
Pour faire plus simple, comment éviter le retour du focus d'un EditText au début du champs (et donc le mettre a la fin) après avoir forcer la valeur avec la methode setText("1");
Partager