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 :

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;  
 
	        }
 
	     });
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

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");