Bonjour,
Je débute sous Android et je me heurte à un problème avec un Spinner.
J'ai bien le bouquin de Mark Murphy (3ème edition), d'où j'ai récupéré un code de démo qui fonctionne bien chez lui.
Problème: ses exemples sont simples et ne comportent toujours qu'une activité, une classe & un fichier de layout xml.
Or mon exemple à moi comprend 3 classes
-> la principale
-> spinner1
-> spinner2
et mes deux Spinner restent désespérément vides.
Je suppose qu'il manque "un lien" quelque part entre mes différents fichiers...
main.xml
Test.java
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 <?xml version="1.0" encoding="utf-8"?> <!-- TABLE LAYOUT pour saisie ville + bouton même ligne... sachant qu un TL se transforme en LINEAR LAYOUT (vertical) entre ses balises <table row> --> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bois" android:stretchColumns="1" > <TextView android:id="@+id/selection" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <!-- ***************************** --> <!-- ligne saisie ville + chercher --> <!-- ***************************** --> <TableRow> <EditText android:id="@+id/entry" android:layout_span="3" android:hint="Entrer une ville" android:contentDescription="Entrer une ville" android:capitalize="words" android:inputType="textAutoCorrect" /> <Button android:id="@+id/go" android:layout_column="2" android:contentDescription="lancer la recherche sur la ville" android:text="chercher" /> </TableRow> <!-- *********************** --> <!-- ligne GEOLOCALLISATION --> <!-- *********************** --> <TableRow> <Button android:id="@+id/geoloc" android:layout_column="1" android:layout_width="fill_parent" android:layout_span="3" android:text="me géolocaliser" /> </TableRow> <!-- ****************** --> <!-- ligne DEPARTEMENTS --> <!-- ****************** --> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Choisir un département:" android:textAppearance="?android:attr/textAppearanceMedium" /> <Spinner android:id="@+id/spinner1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true" android:contentDescription="choisir un département" android:prompt="@string/choix_departement" tools:listitem="@android:layout/simple_spinner_item" /> <!-- ************* --> <!-- ligne REGIONS --> <!-- ************* --> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Choisir une région:" android:textAppearance="?android:attr/textAppearanceMedium" /> <Spinner android:id="@+id/spinner2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true" android:hint="choisir une région" android:contentDescription="choisir une région" android:prompt="@string/choix_region" tools:listitem="@android:layout/simple_spinner_item" /> </TableLayout>
SpinnerDepartements.java
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 package com.bidule.mobi; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.view.Menu; import android.widget.EditText; import android.widget.Toast; public class test extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }SpinnerDepartements.java
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 package com.bidule.mobi; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; public class SpinnerDepartements extends Activity implements AdapterView.OnItemSelectedListener { private TextView selection; private static final String[] items={"-choisir un département-","lorem1", "ipsum1", "dolor1", "sit1", "amet1", "consectetuer1"}; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); selection=(TextView)findViewById(R.id.selection); Spinner spin=(Spinner)findViewById(R.id.spinner1); spin.setOnItemSelectedListener(this); ArrayAdapter<String> aa=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items); aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spin.setAdapter(aa); } public void onItemSelected(AdapterView<?> parent,View v, int position, long id) { selection.setText(items[position]); } public void onNothingSelected(AdapterView<?> parent) { selection.setText(""); } }
Mon, problème: les Spinner restent vides.
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 package com.bidule.mobi; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; public class SpinnerDepartements extends Activity implements AdapterView.OnItemSelectedListener { private TextView selection; private static final String[] items={"-choisir une région-","lorem2", "ipsum2", "dolor2", "sit2", "amet2", "consectetuer2"}; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); selection=(TextView)findViewById(R.id.selection); Spinner spin=(Spinner)findViewById(R.id.spinner2); spin.setOnItemSelectedListener(this); ArrayAdapter<String> aa=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items); aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spin.setAdapter(aa); } public void onItemSelected(AdapterView<?> parent,View v, int position, long id) { selection.setText(items[position]); } public void onNothingSelected(AdapterView<?> parent) { selection.setText(""); } }
Quelqu'un saurait-il m'indiquer pourquoi ?
Merci d'avance pour votre aide.
Partager