bonjour,

Je souhaite modifier dynamiquement le contenu d'un spinner en fonction d'un autre spinner. Apparement il faut passer par un ArrayAdapter. je me suis inspiré de http://developer.android.com/guide/t...s/spinner.html
Je n'ai pas d'erreur de compilation, mais à l'éxécution j'ai une erreur:
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
08-01 23:42:07.758: E/AndroidRuntime(19832): FATAL EXCEPTION: main
08-01 23:42:07.758: E/AndroidRuntime(19832): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.tonnerreapp/com.example.tonnerreapp.PlayBookViewer}: java.lang.IllegalStateException: System services not available to Activities before onCreate()
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1743)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1851)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.app.ActivityThread.access$1500(ActivityThread.java:132)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.os.Handler.dispatchMessage(Handler.java:99)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.os.Looper.loop(Looper.java:150)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.app.ActivityThread.main(ActivityThread.java:4293)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at java.lang.reflect.Method.invokeNative(Native Method)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at java.lang.reflect.Method.invoke(Method.java:507)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at dalvik.system.NativeStart.main(Native Method)
08-01 23:42:07.758: E/AndroidRuntime(19832): Caused by: java.lang.IllegalStateException: System services not available to Activities before onCreate()
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.app.Activity.getSystemService(Activity.java:3697)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.widget.ArrayAdapter.init(ArrayAdapter.java:271)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:113)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at com.example.tonnerreapp.PlayBookViewer.<init>(PlayBookViewer.java:14)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at java.lang.Class.newInstanceImpl(Native Method)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at java.lang.Class.newInstance(Class.java:1409)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.app.Instrumentation.newActivity(Instrumentation.java:1040)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1735)
08-01 23:42:07.758: E/AndroidRuntime(19832): 	... 11 more
mon 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
public class PlayBookViewer extends Activity {
 
	final ArrayAdapter<String> adapterWR = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, R.array.routeWRChoices);
	final ArrayAdapter<String> adapterTE = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, R.array.routeWRChoices);
 
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.playbook_vwr);
 
        spinnerPos.setOnItemSelectedListener(new OnItemSelectedListener(){
 
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {			
 
				if(((String) ((Spinner)arg0).getSelectedItem()).contains("TE")){
					ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getApplicationContext(),
					        R.array.routeTEChoices, android.R.layout.simple_spinner_item);
					adapter.setDropDownViewResource(R.layout.playbook_vwr);
					spinnerRoutes.setAdapter(adapter);
				}else{
					ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getApplicationContext(),
					        R.array.routeWRChoices, android.R.layout.simple_spinner_item);
					adapter.setDropDownViewResource(R.layout.playbook_vwr);
					spinnerRoutes.setAdapter(adapter);
				}
			}
 
			public void onNothingSelected(AdapterView<?> arg0) {
 
			}
        });
	}
et pour finit mon xml:
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
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".PlayBookViewer" >
 
    <TextView
        android:id="@+id/pb_header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/cahier_de_jeu"
        android:textAppearance="?android:attr/textAppearanceLarge" />
 
    <Spinner
        android:id="@+id/positionChoice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/pb_header"
        android:layout_marginTop="10dp"
        android:entries="@array/positionChoices" />
 
    <Spinner
        android:id="@+id/routeChoice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/pb_header"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@+id/positionChoice"
        android:entries="@array/routeWRChoices" />
</RelativeLayout>


merci d'avance!