Autore Topic: Clonare View [Android 2.1 API]  (Letto 1030 volte)

Offline andre9004

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Lg Optimus Hub
  • Sistema operativo:
    Windows 7
Clonare View [Android 2.1 API]
« il: 03 Luglio 2012, 14:33:50 CEST »
0
Eccomi ancora qui  :-)

Il problema è come creare piu' view dallo stesso layout esterno (altro file xml) modificandone il valore delle view figlie all'interno di un for, per poi inserirlo in un altro layout...

ecco il codice:

java:
Codice (Java): [Seleziona]
for (int i = 0; i < nOff; i++) {
   
     //qui vogli prendere gli elementi del layout esterno... lo prendo tutto e poi prendo
     //le varie view per modificargli il valore...

     view = inflater.inflate(   R.layout.layout_cerca_template_list_off,        null);
     img = (ImageView) view.findViewById(R.id.cerca_img_offerta_list);
     titolo = (TextView) view.findViewById(R.id.cerca_list_titolo);
     descrizioneTitolo = (TextView) view.findViewById(R.id.cerca_list_descr_titolo);
     provincia = (TextView) view.findViewById(R.id.cerca_list_provincia);
     sintesi = (TextView) view.findViewById(R.id.cerca_list_sintesi);
     
     //qua prendo l'oggetto che mi permette di acquisire i diversi valori
     re = (SoapObject) ((SoapObject) envelope   .getResponse()).getProperty(i);

    //qui setto i valori di ogni view figlia del layout
    img.setImageBitmap(getBitmap(Integer.parseInt(re.getProperty(0).toString())));
    titolo.setText(re.getProperty(1).toString());
    descrizioneTitolo.setText(re.getProperty(3) .toString());
    provincia.setText(getProvincia(Integer.parseInt(re.getProperty(13).toString())));
    sintesi.setText(re.getProperty(2).toString());

   //qui l'aggiungo a un LinearLayout contenitore_paese
   contenitore_paese.addView(view);
}

xml del layout esterno:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/cerca_layout_list_offertettt"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_marginTop="20dp"
   android:visibility="visible" >

    <!-- Immagine offerta -->

    <ImageView
       android:id="@+id/cerca_list_divi"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_marginTop="20dp"
       android:src="@drawable/cerca_divi" />

    <ImageView
       android:id="@+id/cerca_img_offerta_list"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@+id/cerca_list_divi"
       android:layout_marginTop="20dp"
       android:src="@drawable/cerca_prova" />

    <ImageView
       android:id="@+id/cerca_list__btn_costo"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@+id/cerca_img_offerta_list"
       android:layout_marginTop="20dp"
       android:src="@drawable/piu_viste_btn_gratis" />

    <LinearLayout
       android:id="@+id/cerca_layout_offe"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@+id/cerca_list_divi"
       android:layout_marginLeft="10dp"
       android:layout_marginTop="20dp"
       android:layout_toRightOf="@id/cerca_img_offerta_list"
       android:orientation="vertical" >

        <TextView
           android:id="@+id/cerca_list_titolo"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textColor="#1986a6"
           android:textSize="15sp" />

        <TextView
           android:id="@+id/cerca_list_descr_titolo"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textColor="#8c8c8c"
           android:textSize="12sp"
           android:textStyle="italic" />

        <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="PROVINCIA"
           android:textColor="#1986a6"
           android:textSize="15sp" />

        <TextView
           android:id="@+id/cerca_list_provincia"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textColor="#8c8c8c"
           android:textSize="12sp"
           android:textStyle="italic" />

        <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="SINTESI"
           android:textColor="#1986a6"
           android:textSize="15sp" />

        <TextView
           android:id="@+id/cerca_list_sintesi"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textColor="#8c8c8c"
           android:textSize="12sp"
           android:textStyle="italic" />
    </LinearLayout>

</RelativeLayout>

il problema è che mi cambia i valori della stessa view...

quindi invece che averne per esempio 3 diverse una sotto l'altra se ne vede una che viene modificata a ogni giro di for...

quindi vorrei ottenere dallo stesso layout esterno diverse view per ogni giro di for modificando il valore delle view figlie e aggiungerle al LinearLayout, ottenendone una sotto l'altra diverse tra loro...

Spero mi sia spiegato correttamente :D grazie in anticipoo!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Clonare View [Android 2.1 API]
« Risposta #1 il: 03 Luglio 2012, 14:56:12 CEST »
0
Cambia

Codice (Java): [Seleziona]
view = inflater.inflate(   R.layout.layout_cerca_template_list_off,        null);
in

Codice (Java): [Seleziona]
ViewGroup view = inflater.inflate(   R.layout.layout_cerca_template_list_off,        null);

Offline andre9004

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Lg Optimus Hub
  • Sistema operativo:
    Windows 7
Re:Clonare View [Android 2.1 API]
« Risposta #2 il: 03 Luglio 2012, 15:03:26 CEST »
0
mi da problemi di casting  :-( perchè l'inflater restituisce una View

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Clonare View [Android 2.1 API]
« Risposta #3 il: 03 Luglio 2012, 15:07:35 CEST »
0
mi da problemi di casting  :-( perchè l'inflater restituisce una View

Aggiungi tu il cast, me lo sono scordato :)

Offline andre9004

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Lg Optimus Hub
  • Sistema operativo:
    Windows 7
Re:Clonare View [Android 2.1 API]
« Risposta #4 il: 03 Luglio 2012, 15:15:30 CEST »
0
non va  :-( secondo me perchè setto sempre la stessa view con lo stesso layout... il puntatore è sempre quello penso... per questo vorrei fare una copia profonda di quella maledetta view... ho cercato molto su internet ma niente...

l'unico che si avvicina è questo... ma non capisco come fa :O

http://android.devapp.it/t012-%E2%80%93-popolare-listview-con-elementi-prelevati-da-un-database-sqlite-nelle-applicazioni-android

scusa il link a un altro sito  :-[
« Ultima modifica: 03 Luglio 2012, 15:17:16 CEST da andre9004 »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Clonare View [Android 2.1 API]
« Risposta #5 il: 03 Luglio 2012, 15:24:47 CEST »
0
Il problema è che tu vai proprio a sovrascrivere i valori vecchi.
Prova a fare la stessa cosa (ovvero a dichiararli nel ciclo) anche gli altri elementi (img, ecc ecc).

Offline andre9004

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Lg Optimus Hub
  • Sistema operativo:
    Windows 7
Re:Clonare View [Android 2.1 API]
« Risposta #6 il: 03 Luglio 2012, 15:29:33 CEST »
0
niente  :'(

Ho risolto il problema!  :D :D praticamente per una mia solita svista, il LinearLayout non aveva la
Codice (XML): [Seleziona]
android:orientation="vertical" e quindi mi sovrapponeva le views...

Chiedo scusa per aver fatto perdere del tempo  :-( cerchero' di fare piu' attenzione...  :'(
« Ultima modifica: 03 Luglio 2012, 16:33:31 CEST da andre9004 »