Autore Topic: modifica dinamica layout  (Letto 486 volte)

Offline psicomant

  • Utente junior
  • **
  • Post: 95
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    OSX 10.6.5
modifica dinamica layout
« il: 10 Novembre 2010, 12:14:05 CET »
0
Salve a tutti!

Dato il codice

Codice (Java): [Seleziona]
[...]
TextView tv;
    Button b;
    public class myOnItemSelectedListener implements OnItemSelectedListener{
        public void onItemSelected(AdapterView<?> parent, View view,
                                int item, long arg3) {
                        selectedItem = list.get(item);
                        /*
                        ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
                        vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.fade));
                        vf.showNext();
                        */

            // set preferences
            savePreferencesData(view);
            // if we have to manipulate a sensor, we have to activate proper interface...
            if(selectedItem.getType() == Sensor.TYPE_ACCELEROMETER ||
                selectedItem.getType() == Sensor.TYPE_GYROSCOPE ||
                selectedItem.getType() == Sensor.TYPE_LIGHT ||
                selectedItem.getType() == Sensor.TYPE_MAGNETIC_FIELD ||
                selectedItem.getType() == Sensor.TYPE_ORIENTATION ||
                selectedItem.getType() == Sensor.TYPE_PRESSURE ||
                selectedItem.getType() == Sensor.TYPE_PROXIMITY ||
                selectedItem.getType() == Sensor.TYPE_TEMPERATURE)
            {
                tv = (TextView)findViewById(R.id.spinner_sensor_precision);       <=== RIGA 141
                b = (Button)findViewById(R.id.tv_sensor_precision);
                tv.setEnabled(true);
                b.setEnabled(true);
                tv = (TextView)findViewById(R.id.spinner_sensor_rate);
                b = (Button)findViewById(R.id.tv_sensor_precision);
                tv.setEnabled(true);
                b.setEnabled(true);
            } else {
                tv = (TextView)findViewById(R.id.spinner_sensor_precision);
                b = (Button)findViewById(R.id.tv_sensor_precision);
                tv.setEnabled(false);
                b.setEnabled(false);
                tv = (TextView)findViewById(R.id.spinner_sensor_rate);
                b = (Button)findViewById(R.id.tv_sensor_precision);
                tv.setEnabled(false);
                b.setEnabled(false);                   
            }
           
                }

                public void onNothingSelected(AdapterView<?> arg0) {
                        //
                }
    }
[...]

ho il seguente problema:

Codice: [Seleziona]
[color=red]
11-10 12:11:11.784: ERROR/AndroidRuntime(27987): FATAL EXCEPTION: main
11-10 12:11:11.784: ERROR/AndroidRuntime(27987): java.lang.ClassCastException: android.widget.Spinner
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at com.CSMAS.interfaceCSMAS$myOnItemSelectedListener.onItemSelected(interfaceCSMAS.java:141)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at android.widget.AdapterView.fireOnSelected(AdapterView.java:864)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at android.widget.AdapterView.access$200(AdapterView.java:42)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:830)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at android.os.Handler.handleCallback(Handler.java:587)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at android.os.Handler.dispatchMessage(Handler.java:92)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at android.os.Looper.loop(Looper.java:123)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at android.app.ActivityThread.main(ActivityThread.java:4627)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at java.lang.reflect.Method.invokeNative(Native Method)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at java.lang.reflect.Method.invoke(Method.java:521)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-10 12:11:11.784: ERROR/AndroidRuntime(27987):     at dalvik.system.NativeStart.main(Native Method)
[/color]

Nel listato ho evidenziato la riga 141!

Dove erro?  :-\

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:modifica dinamica layout
« Risposta #1 il: 10 Novembre 2010, 12:16:26 CET »
0
L'errore riporta un java.lang.ClassCastException: tenti di assegnare Spinner ad una TextView:
Codice (Java): [Seleziona]
tv = (TextView)findViewById(R.id.spinner_sensor_precision);       <=== RIGA 141
Qui trovi la doc sugli Spinner: Hello, Spinner | Android Developers
« Ultima modifica: 10 Novembre 2010, 12:18:05 CET da JD »
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline psicomant

  • Utente junior
  • **
  • Post: 95
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    OSX 10.6.5
Re:modifica dinamica layout
« Risposta #2 il: 10 Novembre 2010, 14:30:23 CET »
0
Grazie mille! :)

Fare le cose di fretta non porta mai a buoni risultati :P

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:modifica dinamica layout
« Risposta #3 il: 10 Novembre 2010, 21:33:57 CET »
0
Fare le cose di fretta non porta mai a buoni risultati :P

Vero però leggere le eccezioni sollevate è fondamentale per risolvere i problemi ;)