Bonjour à tous,
Je débute en développement Android et j'ai suivi un tutoriel Android pour comprendre les listeners. Voici mon code:
Mes problèmes sont mentionnés en commentaire dans mon code. En effet, je ne comprends pas pourquoi le texte dans mes EditText (castées en TextView) ne disparait qu'à partir de la deuxième fois où je clique dessus, à l'exception de la toute première fois où je clique sur l'une des deux au lancement de l'application sur mon smartphone (je travaille avec un Galaxy S3). Les OnFocusChange, eux, fonctionnent correctement.
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
50 public class MainActivity extends Activity { private TextView ReservationReference = null; private TextView LastName = null; private android.view.View.OnClickListener TextViewClickListener = new View.OnClickListener() //Curieusement, ne marche pas sans le préfixe "android.view.View." malgré l'import { public void onClick(View v) { ((TextView)v).setText(null); } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ReservationReference = (TextView)findViewById(R.id.ReservationReference); LastName = (TextView)findViewById(R.id.LastName); ReservationReference.setOnClickListener(TextViewClickListener); //Ne fonctionne qu'à partir du second clic... LastName.setOnClickListener(TextViewClickListener); //Ne fonctionne qu'à partir du second clic... ReservationReference.setOnFocusChangeListener(new OnFocusChangeListener() { public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus && (((TextView)v).getText().toString().equals(""))) //La seconde règle n'est jamais respectée { ((TextView)v).setText("Reservation Reference"); } } }); LastName.setOnFocusChangeListener(new OnFocusChangeListener() { public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus && (((TextView)v).getText().toString().equals(""))) //La seconde règle n'est jamais respectée { ((TextView)v).setText("Last Name"); } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
Par ailleurs, si ce n'est pas "la bonne façon de faire", merci de m'orienter. En effet, il y a tellement de listeners différents que je me suis perdu...
Merci de votre aide.
Partager