CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianpassa con ben 5 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: DreamReaper con ben 23 Thanks ricevuti negli ultimi sette giorni
Utente del mese: DreamReaper con ben 79 Thanks ricevuti nell'ultimo mese

Pagina 2 di 2 primaprima 12
Visualizzazione dei risultati da 11 a 20 su 20
Discussione:

Problema spinner

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. #11
    Baby Droid L'avatar di fattazzo


    Registrato dal
    Nov 2013
    Località
    Baselga di Pinè (Trento)
    Messaggi
    19
    Smartphone
    Xiaomi Redmi Note 3

    Ringraziamenti
    0
    Ringraziato 6 volte in 6 Posts
    Predefinito

    L'errore consiste nel fatto che tu stai cercando di aggiungere nel layout (SVLayout) la view (Image) all'indice 1 ma il layout non contiene nessuna altra view. Devi ricordare che l'indice parte da 0 quindi specificando 1 stai dicendo al layout di aggiungere l'immagine al secondo posto.

    Il codice esatto dovrebbe essere:
    codice:
    SVLayout.addView(Image);
    o
    codice:
    SVLayout.addView(Image,0);
    ne caso in cui tu voglia aggiungere l'immagine sempre al primo posto ( nel caso in cui fossero presenti altre view nel layout )

    Spero la memoria non mi abbia tradito

    Se ho risolto il tuo problema ringrazia pure con il pulsantino a fine post

  2. Il seguente Utente ha ringraziato fattazzo per il post:

    Simone9969996 (25-05-17)

  3.  
  4. #12
    Baby Droid


    Registrato dal
    Mar 2017
    Messaggi
    23

    Ringraziamenti
    4
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da fattazzo Visualizza il messaggio
    L'errore consiste nel fatto che tu stai cercando di aggiungere nel layout (SVLayout) la view (Image) all'indice 1 ma il layout non contiene nessuna altra view. Devi ricordare che l'indice parte da 0 quindi specificando 1 stai dicendo al layout di aggiungere l'immagine al secondo posto.

    Il codice esatto dovrebbe essere:
    codice:
    SVLayout.addView(Image);
    o
    codice:
    SVLayout.addView(Image,0);
    ne caso in cui tu voglia aggiungere l'immagine sempre al primo posto ( nel caso in cui fossero presenti altre view nel layout )

    Spero la memoria non mi abbia tradito

    Se ho risolto il tuo problema ringrazia pure con il pulsantino a fine post
    Infatti ho modificato da poco e funziona.
    Ovviamente sistemato un problema ne arriva un altro.
    Ma se l'aggiunta di mmagini dovesse essere sequenziale come una list view come posso fare?
    perchè l'ho messo in un while con indice che aumenta di volta in volta ma mi va in errore:

    05-25 04:31:28.565 4730-4730/sm.winnerstatics E/AndroidRuntime: FATAL EXCEPTION: main
    Process: sm.winnerstatics, PID: 4730
    java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
    at android.view.ViewGroup.addViewInner(ViewGroup.java :3562)
    at android.view.ViewGroup.addView(ViewGroup.java:3415 )
    at android.view.ViewGroup.addView(ViewGroup.java:3360 )
    at sm.winnerstatics.Insert$2.onClick(Insert.java:362)
    at android.view.View.performClick(View.java:4438)
    at android.view.View$PerformClick.run(View.java:18422 )
    at android.os.Handler.handleCallback(Handler.java:733 )
    at android.os.Handler.dispatchMessage(Handler.java:95 )
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.jav a:5017)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:779)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:595)
    at dalvik.system.NativeStart.main(Native Method)

  5. #13
    Baby Droid L'avatar di fattazzo


    Registrato dal
    Nov 2013
    Località
    Baselga di Pinè (Trento)
    Messaggi
    19
    Smartphone
    Xiaomi Redmi Note 3

    Ringraziamenti
    0
    Ringraziato 6 volte in 6 Posts
    Predefinito

    La view dell'immagine la ricrei ogni volta nel ciclo?
    Le assegni un id diverso?

    Inviato dal mio Redmi Note 3 utilizzando Tapatalk

  6. #14
    Baby Droid


    Registrato dal
    Mar 2017
    Messaggi
    23

    Ringraziamenti
    4
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da fattazzo Visualizza il messaggio
    La view dell'immagine la ricrei ogni volta nel ciclo?
    Le assegni un id diverso?

    Inviato dal mio Redmi Note 3 utilizzando Tapatalk
    Questo è il cliclo fuori ci sono le impostazioni postate prima

    while((line = brFile.readLine()) != null) {



    SVLayout.addView(Image,IDObject);
    Image.setId(IDObject);


    IDObject++;
    }

  7. #15
    Baby Droid L'avatar di fattazzo


    Registrato dal
    Nov 2013
    Località
    Baselga di Pinè (Trento)
    Messaggi
    19
    Smartphone
    Xiaomi Redmi Note 3

    Ringraziamenti
    0
    Ringraziato 6 volte in 6 Posts
    Predefinito

    Il ciclo drovrebbe essere questo:

    codice:
    while((line = brFile.readLine()) != null) {
        
        Image = XXXXXXXXXXX
    
        RelativeLayout.LayoutParams RLayout = new RelativeLayout.LayoutParams(LinearLayout.LayoutPar ams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        Drawable b = getResources().getDrawable(R.drawable.ic_action_pr ovavalid);
        Image.setImageDrawable(b);
        Image.setLayoutParams(RLayout);
        Image.setId(IDObject);
        Image.setMaxWidth(50);
        Image.setMaxHeight(50);
        Image.setPadding(20,20,20,20);
    
        SVLayout.addView(Image,IDObject);
    
        IDObject++;
    }
    al posto di XXXXXXXXXXX a seconda delle tue esigenze ci va il codice per creare la view dell'immagine ( credo che il tuo caso sia quello di fare una new su ImageView ). L'importante quindi è che la view sia nuova e che tu non riusi una già aggiunta.

    PS: se ricordo bene puoi usare la addView senza indice perchè inserisce già le view una dietro l'altra.

  8. Il seguente Utente ha ringraziato fattazzo per il post:

    Simone9969996 (25-05-17)

  9. #16
    Baby Droid


    Registrato dal
    Mar 2017
    Messaggi
    23

    Ringraziamenti
    4
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da fattazzo Visualizza il messaggio
    Il ciclo drovrebbe essere questo:

    codice:
    while((line = brFile.readLine()) != null) {
        
        Image = XXXXXXXXXXX
    
        RelativeLayout.LayoutParams RLayout = new RelativeLayout.LayoutParams(LinearLayout.LayoutPar ams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        Drawable b = getResources().getDrawable(R.drawable.ic_action_pr ovavalid);
        Image.setImageDrawable(b);
        Image.setLayoutParams(RLayout);
        Image.setId(IDObject);
        Image.setMaxWidth(50);
        Image.setMaxHeight(50);
        Image.setPadding(20,20,20,20);
    
        SVLayout.addView(Image,IDObject);
    
        IDObject++;
    }
    al posto di XXXXXXXXXXX a seconda delle tue esigenze ci va il codice per creare la view dell'immagine ( credo che il tuo caso sia quello di fare una new su ImageView ). L'importante quindi è che la view sia nuova e che tu non riusi una già aggiunta.

    PS: se ricordo bene puoi usare la addView senza indice perchè inserisce già le view una dietro l'altra.
    iO HO MODIFICATO IL CODICE IN QUESTO MODO
    //Identificativo layout,bottoni,etc che aumenta
    int IDObject =0;
    //ciclo while finchè non trova una riga vuota
    while((line = brFile.readLine()) != null) {
    //Ogni singolo valore
    separated = line.split(";");

    Image[IDObject] = new ImageView(Insert.this);
    Image[IDObject].setImageDrawable(b);
    Image[IDObject].setLayoutParams(RLayout);
    Image[IDObject].setMaxWidth(50);
    Image[IDObject].setMaxHeight(50);
    Image[IDObject].setPadding(20,20,20,20);
    //Inserisco l'immagine
    SVLayout.addView(Image[IDObject]);
    Image[IDObject].setId(IDObject);


    //aumento ID
    IDObject++;
    }

    Ho controlalto e il ciclo lo fa più volte. Ma penso le immagini appaiano una sopra l'altra. Ho controlalto se esistema un tipo serMarginTop, etc per caso tu hai qualche informazione in merito?

    E grazie ancora

  10. #17
    Baby Droid L'avatar di fattazzo


    Registrato dal
    Nov 2013
    Località
    Baselga di Pinè (Trento)
    Messaggi
    19
    Smartphone
    Xiaomi Redmi Note 3

    Ringraziamenti
    0
    Ringraziato 6 volte in 6 Posts
    Predefinito

    Appaiono una sopra l'altra perchè le stai aggiungendo ad un RelativeLayout
    codice:
    RelativeLayout SVLayout = (RelativeLayout) findViewById(R.id.LayoutLScrollView);
    Prova a sostituirlo con un LinearLayout con orientamento verticale o orizzonale

  11. Il seguente Utente ha ringraziato fattazzo per il post:

    Simone9969996 (26-05-17)

  12. #18
    Baby Droid


    Registrato dal
    Mar 2017
    Messaggi
    23

    Ringraziamenti
    4
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da fattazzo Visualizza il messaggio
    Appaiono una sopra l'altra perchè le stai aggiungendo ad un RelativeLayout
    codice:
    RelativeLayout SVLayout = (RelativeLayout) findViewById(R.id.LayoutLScrollView);
    Prova a sostituirlo con un LinearLayout con orientamento verticale o orizzonale
    Ora funziona ma con il linear yaoput mi si è presentato un problema... Ovvero io volevo scrivere una text view vicino all'immagine ma con questo codice mi crea sempre un linearLayout e non capisco perchè

    while(eteetc)
    {

    //Setto parametri immagine
    Image[IDObject] = new ImageView(Insert.this);
    Image[IDObject].setImageDrawable(b);
    Image[IDObject].setLayoutParams(RLayout);
    Image[IDObject].setMaxWidth(50);
    Image[IDObject].setMaxHeight(50);
    Image[IDObject].setPadding(20,20,20,20);
    //Inserisco l'immagine
    SVLayout.addView(Image[IDObject]);
    Image[IDObject].setId(IDObject);

    //Setto parametri TextView
    ArrayDate[IDObject] = new TextView(Insert.this);
    ArrayDate[IDObject].setText(separated[1]);
    ArrayDate[IDObject].setLayoutParams(RLayout);
    //Inserisco la text View
    SVLayout.addView(ArrayDate[IDObject]);
    ArrayDate[IDObject].setId(IDObject);


    Dovrebbe uscire
    Immagine Data
    Immagine Dat2
    Immagine Data3
    Grazie
    Ultima modifica di Simone9969996; 26-05-17 alle 12:50

  13. #19
    Baby Droid L'avatar di fattazzo


    Registrato dal
    Nov 2013
    Località
    Baselga di Pinè (Trento)
    Messaggi
    19
    Smartphone
    Xiaomi Redmi Note 3

    Ringraziamenti
    0
    Ringraziato 6 volte in 6 Posts
    Predefinito

    Quello che vuoi fare mi è chiaro, diciamo che però per farlo hai fondamentalmente 2 modi:

    1. Aggiungere nel layout tutte le viste che ti servono in base ai dati che hai
      Questo è il metodo che stai utilizzando tu ora. Il lato negativo è che per visualizzare i dati con un layout un po più complesso di una view per dato devi costruirti tutto e da codice non è una cosa proprio semplice.
    2. Usare una ListView per visualizzare i dati
      Il metodo più elegante,mantenibile e semplice.
      Il RelativeLayout si va sostituire con una ListView. L'adapter della lista ha un layout che rappresenta una singola riga ( quello che per te è la image con a fianco la textview ) che in questo modo puoi costruirti graficamente da Android Studio e nel suo metodo getView vai ad avvalorare immagine e testo con i dati che hai.
      Questo è il metodo preferibile in assoluto, certo è che spiegare come implementarlo nel tuo caso sarebbe un po lungo ma ho trovato se vuoi questo articolo che lo spiega in modo molto semplice.

  14. Il seguente Utente ha ringraziato fattazzo per il post:

    Simone9969996 (26-05-17)

  15. #20
    Baby Droid


    Registrato dal
    Mar 2017
    Messaggi
    23

    Ringraziamenti
    4
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da fattazzo Visualizza il messaggio
    Quello che vuoi fare mi è chiaro, diciamo che però per farlo hai fondamentalmente 2 modi:

    1. Aggiungere nel layout tutte le viste che ti servono in base ai dati che hai
      Questo è il metodo che stai utilizzando tu ora. Il lato negativo è che per visualizzare i dati con un layout un po più complesso di una view per dato devi costruirti tutto e da codice non è una cosa proprio semplice.
    2. Usare una ListView per visualizzare i dati
      Il metodo più elegante,mantenibile e semplice.
      Il RelativeLayout si va sostituire con una ListView. L'adapter della lista ha un layout che rappresenta una singola riga ( quello che per te è la image con a fianco la textview ) che in questo modo puoi costruirti graficamente da Android Studio e nel suo metodo getView vai ad avvalorare immagine e testo con i dati che hai.
      Questo è il metodo preferibile in assoluto, certo è che spiegare come implementarlo nel tuo caso sarebbe un po lungo ma ho trovato se vuoi questo articolo che lo spiega in modo molto semplice.
    Ti ringrazio per tutto.
    Sto sistemando il layout e ho capit ocome procedere.
    Avevo iniziato settando delle list view ma andava sempre in errore. E da un lato preferisco mettermi 5 minuti di più a "crearmi" le list view da layout che usare classi già fatte che implementarle / fare modifiche danno spesso e volentieri errori.
    Poi posso sbagliarmi

Pagina 2 di 2 primaprima 12

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