CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 12 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 26 Thanks ricevuti nell'ultimo mese

Pagina 1 di 2 12 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 11
Discussione:

Problema Eclipse?

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Mar 2010
    Messaggi
    21

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    [RISOLTO] Problema Eclipse?

    Ehm... Non so come spiegare. Stavo lavorando al mio codice, quando, provando a fare il debug, inizia a crashare il programma prima ancora di partire. Allora ho iniziato a commentare codice su codice per eliminare potenziali errori, ma il problema persiste.
    Ora sono arrivato a creare un progetto completamente nuovo, estendere la classe in java da Activity a ListActivity e, poi eseguo:

    codice:
    super.onCreate(savedInstanceState);
     ListView lv = new ListView(this);
     TextView tv = new TextView(lv.getContext());
     tv.setText("Hello, Android");
     setContentView(lv);
    All'ultima riga, crasha... Nota interessante: se invece che avere una ListActivity tengo solo Activity non crasha, cosa però inaccettabile visto che è una parte fondamentale delle interfacce per creare oggetti, e in più ho bisogno della funzione setListAdapter che non è presente in Activity.

    Ringraziando per l'aiuto, faccio i complimenti per l'ottimo aiuto che si riceve in questo sito. Ancora grazie!

    Saluti
    Ultima modifica di Guybrush1989; 24-03-10 alle 00:15 - Motivo: Problema risolto

  2.  
  3. #2
    Baby Droid


    Registrato dal
    Mar 2010
    Messaggi
    21

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Qualcuno mi aiuti, vi prego: ho provato anche a reinstallare tutto eclipse con i relativi sdk e tools di android, ma niente. Creo un progetto, estendo la classe che si crea automaticamente da Activity a ListActivity (importando la giusta classe tramite ctrl+shift+O), eseguo il debug sul dispositivo fisico e come arriva a setContentView(R.layout.main); crasha dicendomi interruzione imprevista dell'aplicazione [...] Riprovare. Cos'altro posso provare per sistemare il problema?

    Please help!!

  4. #3
    Senior Droid


    Registrato dal
    Feb 2010
    Messaggi
    305

    Ringraziamenti
    4
    Ringraziato 17 volte in 17 Posts
    Predefinito

    setContentView accetta l'id di un layout definito in xml, non gli puoi passare una View

  5. #4
    Baby Droid


    Registrato dal
    Mar 2010
    Messaggi
    21

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Cercando guide in internet ho visto che è "preferibile" usare il layout, ma è possibile anche fare così, tant'è vero che se si estende la classe ad Activity va tutto bene. Utilizzando anche i layout (anche di una semplicità imbarazzante) comunque, non riesco ad eseguire quell'operazione o una simile con un'esetensione diversa da Activity. E la cosa strana è che il tutto si ripete su un ubuntu, un arch linux e un mac. Non c'è modo di usare classi deverse da quella di default.
    Addirittura seguendo una guida ho trovato un consiglio sul come creare delle preferenze, consigliava di usare una classe activity per istanziare sopra una classe PreferenceActivity (tramite layout) e, usando il debug, ho notato che alla pressione del tasto, parte l'evento che lancia la nuova activity (startActivity(R.[...].miolayout)) e il processo crasha mentre sta trafficando con il codice che non posso vedere (librerie suppondo) e prima che passi anche solo a vedere com'è la nuova activity termina tutto.

    Boh, chiedo venia. Provate a lanciare qualche banalità perchè a sto punto credo sia un errore di programmazione, ma proprio non capisco dove sbaglio... :-(

  6. #5
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    Personalmente non ho capito cosa tu voglia fare.
    La differenza tra Activity e ListActivity è il mero fatto che Activity non ha nessun layout e ListActivity ha un layout che contiene una ListView, come puoi vedere da qui.

    Se il tuo setContentView va in crash... forse è perchè non è fatto bene .
    Puoi postare il tuo main.xml?

    Ti ricordo che per usare un layout custom su una ListActivity ci sono delle 'regole' da rispettare:

    ListActivity has a default layout that consists of a single, full-screen list in the center of the screen. However, if you desire, you can customize the screen layout by setting your own view layout with setContentView() in onCreate(). To do this, your own view MUST contain a ListView object with the id "@android:id/list" (or list if it's in code)

    Optionally, your custom view can contain another view object of any type to display when the list view is empty. This "empty list" notifier must have an id "android:empty". Note that when an empty view is present, the list view will be hidden when there is no data to display.
    comunque al link di prima trovi tutte le info per usare ListActivity.
    Secondo me comunque è sempre meglio usare Activity e ti customizzi il layout come vuoi.
    Per usare poi il ListAdapter non devi farlo direttamente dall'Activity, ma dall'oggetto ListView che l'Activity contiene.

    Spero di averti aiutato


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  7. #6
    Baby Droid


    Registrato dal
    Mar 2010
    Messaggi
    21

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da Azatoth Visualizza il messaggio
    Personalmente non ho capito cosa tu voglia fare.
    La differenza tra Activity e ListActivity è il mero fatto che Activity non ha nessun layout e ListActivity ha un layout che contiene una ListView, come puoi vedere da qui.

    Se il tuo setContentView va in crash... forse è perchè non è fatto bene .
    Puoi postare il tuo main.xml?

    Ti ricordo che per usare un layout custom su una ListActivity ci sono delle 'regole' da rispettare:



    comunque al link di prima trovi tutte le info per usare ListActivity.
    Secondo me comunque è sempre meglio usare Activity e ti customizzi il layout come vuoi.
    Per usare poi il ListAdapter non devi farlo direttamente dall'Activity, ma dall'oggetto ListView che l'Activity contiene.

    Spero di averti aiutato
    Certamente è un dettaglio che mi era sfuggito , ma ciò non toglie che non cambia le cose per 2 motivi:
    1 - va in crash con qualunque estensione di classe diversa da Activity, tant'è vero che ho provato a copiare l'xml identico copiato da un tutorial (qui) in un PreferenceActivity e ancora crasha.
    2 - ora ho provato rispettando le specifiche, e... Nessun cambiamento. Quindi posso anche permettermi di non usare la ListActivity ma non so se sia possibile programmare decentemente senza poter estendere altro che l'Activity (magari che ha più esperienza dirà invece che è preferibile...?)...

    In ogni caso ecco il codice:
    AndroidManifest.xml (non modificato a mano):
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="org.kpowered"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".provahello"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
        </application>
    
    
    </manifest>
    classe java (modificata l'estensione da Activity a ListActivity):
    codice:
    package org.kpowered;
    
    import android.app.ListActivity;
    import android.os.Bundle;
    
    public class provahello extends ListActivity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
    }
    main.xml (sostituito il tag LinearLayout con uno identico ListView con l'aggiunta dell'id '@+id/list')
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/list" >
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        />
    </ListView>
    Ecco i miei dati Non so che altro fare... Intanto ringrazio tutti per la collaborazione. Saluti
    Ultima modifica di Guybrush1989; 23-03-10 alle 19:28

  8. #7
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    Quote Originariamente inviato da Guybrush1989 Visualizza il messaggio
    Certamente è un dettaglio che mi era sfuggito , ma ciò non toglie che non cambia le cose per 2 motivi:
    1 - va in crash con qualunque estensione di classe diversa da Activity, tant'è vero che ho provato a copiare l'xml identico copiato da un tutorial (qui) in un PreferenceActivity e ancora crasha.
    bhe questo non vuol dir nulla : se sbagli il layout è sbagliato sempre .
    Quote Originariamente inviato da Guybrush1989 Visualizza il messaggio
    2 - ora ho provato rispettando le specifiche, e... Nessun cambiamento. Quindi posso anche permettermi di non usare la ListActivity ma non so se sia possibile programmare decentemente senza poter estendere altro che l'Activity (magari che ha più esperienza dirà invece che è preferibile...?)...
    personalmente faccio tutto da activity... ma puoi benissimo usare le classi che estendono activity ma non ne vedo davvero l'utilità...

    Quote Originariamente inviato da Guybrush1989 Visualizza il messaggio
    In ogni caso ecco il codice:
    AndroidManifest.xml (non modificato a mano):
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="org.kpowered"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".provahello"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
        </application>
    
    
    </manifest>
    classe java (modificata l'estensione da Activity a ListActivity):
    codice:
    package org.kpowered;
    
    import android.app.ListActivity;
    import android.os.Bundle;
    
    public class provahello extends ListActivity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
    }
    Qui mi pare tutto ok

    Quote Originariamente inviato da Guybrush1989 Visualizza il messaggio
    main.xml (sostituito il tag LinearLayout con uno identico ListView con l'aggiunta dell'id '@+id/list')
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/list" >
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        />
    </ListView>
    Ecco i miei dati Non so che altro fare... Intanto ringrazio tutti per la collaborazione. Saluti
    Qui mi sa che invece, senza layout è proprio un errore...
    prova con questo xml e fammi sapere:

    codice:
    <?xml version="1.0" encoding="utf-8"?>
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:orientation="vertical"
             android:layout_width="fill_parent" 
             android:layout_height="fill_parent"
             android:paddingLeft="8dp"
             android:paddingRight="8dp">
     
         <ListView android:id="@id/android:list"
                   android:layout_width="fill_parent" 
                   android:layout_height="fill_parent"
                   android:background="#00FF00"
                   android:layout_weight="1"
                   android:drawSelectorOnTop="false"/>
     
         <TextView id="@id/android:empty"
                   android:layout_width="fill_parent" 
                   android:layout_height="fill_parent"
                   android:background="#FF0000"
                   android:text="No data"/>
     </LinearLayout>
    nota che:

    1) tu usi "@+id/list" al posto di "@id/android:list"
    2) non setti nessun layout che invece è fondamentale
    3) il textview non è "@id/android:empty" come 'impone' la documentazione che viene visualizzato a lista vuota; infatti:

    Optionally, your custom view can contain another view object of any type to display when the list view is empty. This "empty list" notifier must have an id "android:empty". Note that when an empty view is present, the list view will be hidden when there is no data to display.
    mi sa che fai un po' di casini .
    Prova a prendere qualche libro di sviluppo: ti consiglio quello di Reto Meier edito da Wrox.


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  9. #8
    Baby Droid


    Registrato dal
    Mar 2010
    Messaggi
    21

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ohh!! Ora ci siamo! Ora funziona! Molte, molte grazie. Stavo quasi per perdere la speranza

    Comunque per quanto riguarda la confusione è certa ce n'è parecchia ma sto imparando e credo di essere sulla strada giusta, anche se sono convito che ci saranno anche un po di problematiche simili per la creazione di widget (), ma di libri non se ne parla. Sono un universitario che vive da solo, non sprecherò mai 50-100€ per roba che si può reperire in internet (per esempio qui ) in più è sw libero, va proprio contro l'etica di un buon programmatore: se puoi fare con quello che hai già, non ti serve altro.

    Intanto grazie ancora per l'aiuto, a risentirci al prossimo dubbio

    P.S.: già che ci siamo ne approfitto della vostra conoscenza e vi chiedo:
    L'id -> @+id/list da quello che ho capito serve per assegnare un nuovo id ed il nome list,
    ma quello proposto da te cosa significa (@id/android:list)?
    Ultima modifica di Guybrush1989; 24-03-10 alle 00:27

  10. #9
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    50-100&euro;?! il libro costa si e no 25&euro; scarsi...
    comunque non dire che il buon programmatore si 'arrangia' perchè se tu avessi per lo meno letto la documentazione ufficiale, ti saresti risposto da solo... quindi è solo mancanza di tempo o di voglia.
    guarda caso il tempo si perde comunque... visto che non risolvi e sei costretto a chiedere, aspettare, nel mentre andare a tentoni...
    se di mancanza di voglia di parla... bhe non saresti qui.

    però una cosa è certa: il buon programmatore studia, non va a tentoni o a cercare la risposta nel forum senza neanche andare a vedersi la documentazione di ciò che usa: io non ho mai usato ListActivity... però ti ho risposto... ho solo cercato ListActivity nella Reference di android e messo qui il layout usato li. il buon programmatore chiede solo quando anche dopo aver studiato, sviscierato un argomento, fatto mille tentativi ancora non va. se manca anche una sola delle tre cose allora non è un buon programmatore.

    vedi la mia come una critica costruttiva e non come una 'cazziata'... quasi più una precisazione da chi il programmatore lo fa di professione e su android lo fa per passione.

    Sent from my T-Mobile G1 using Tapatalk


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  11. #10
    Baby Droid


    Registrato dal
    Mar 2010
    Messaggi
    21

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Tranquillo non me la prendo, cmq sono almeno 3gg che ogni volta che ho 10min in facoltà prova a risolvere il problema (anche con alcuni studenti soci miei) e la documentazione l'ho anche letta (non tutta), purtroppo l'inglese che ho è quello che è e alcune cose me le perdo sopratutto dettagli simili.

    In ogni caso credo che mettendo assieme gli elementi che avevo prima che il programma iniziasse a crashare e quello che so ora, credo di poter creare il widget, che volevo. Se tra qualche mese sarò ancora piantato qui, penserò al libro, ma fino ad allora insisto nel dire che software libero significa conoscenza gratuita per tutti, della serie sempre affermazione costruttiva, non sminuisco in alcun modo chi si sbatte con i libri, però nella storia ho imparato che in realtà avresti sempre potuto evitarlo (magari mettendoci più tempo, quello è chiaro...). Cmq grazie ancora di tutto saluti

Pagina 1 di 2 12 ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy