Autore Topic: ListView con sottoelementi - Numero elementi corretto ma senza contenuto  (Letto 684 volte)

Offline Therude

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Salve ragazzi,
la mia applicazione consiste in un gioco di scacchi, e tengo traccia delle partite effettuate per stilare una classifica. Nell'activity ,che viene richiamata quando si clicca il bottone per la visualizzazione della classifica, vorrei fare visualizzare una textView con scritto classifica e poi una listView con i nick dei giocatori e come sottoelementi le posizioni.
Nell'array che mi viene passato negli extra ho come ultimi due elementi la posizione del giocatore del dispositivo e il suo nick.

Ecco il layout dell'activity:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical" >

    <TextView
       android:id="@+id/chart_titolo"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/chart"
       android:textAppearance="?android:attr/textAppearanceLarge" />

    <ListView
       android:id="@+id/android:list"
       android:layout_width="fill_parent"
                android:layout_height="fill_parent"
       android:layout_weight="2"
                android:drawSelectorOnTop="false">
    </ListView>
    <TextView android:id="@id/android:empty"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="#FFff00"
        />

</LinearLayout>

Il layout personalizzato delle righe per l'adapter:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical" >
   
    <TextView android:id="@+id/text1"
                android:textStyle="bold"
                android:textColor="#FFFF00"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"/>
       
        <TextView android:id="@+id/text2"
                android:typeface="sans"
                android:textStyle="italic"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"/>

</LinearLayout>

Ed infine l'activity:
Codice (Java): [Seleziona]
public class ChartActivity extends ListActivity {
        private String user_logged;
        private String[] chart;
        private ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();

        @Override
        public void onCreate(Bundle savedInstanceState){
                super.onCreate(savedInstanceState);
                setContentView(R.layout.chart);
               
                user_logged = this.getIntent().getStringExtra("it.scacchi.activities.Nick1");
                chart = this.getIntent().getStringArrayExtra("it.scacchi.activities.Chart");
               
                boolean foundPlayer = false;
                for(int i = 0; i< 10; i++){
                        if(!chart[i].equals("")){
                                if(chart[i].equals(user_logged)){
                                        foundPlayer = true;
                                }                              
                                HashMap<String, String> tmp = new HashMap<String, String>();
                                tmp.put("Player", chart[i]);
                                tmp.put("Position", (i+1)+"");
                                list.add(tmp);
                        }else{
                                break;
                        }
                }
                if(!foundPlayer){
                        HashMap<String, String> tmp = new HashMap<String, String>();
                        tmp.put("Player", chart[11]);
                        tmp.put("Position", chart[10]);
                        list.add(tmp);
                }
                SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.custom_row_view, new String[] {"Player", "Position"}, new int[] {android.R.id.text1, android.R.id.text2});
               
                setListAdapter(adapter);
        }
}

La lista riconosce un numero di elementi giusto, controllando con il debug ogni array e/o variabile sembra avere i valori corretti, ma la lista continua a farmi vedere gli elementi vuoti. Sia quelli principali, sia quelli secondari. Qualcuno può aiutarmi? Grazie in anticipo.

P.s.
Ho seguito QUESTA guida per la lista, evidentemente ho sbagliato qualche cosa.

Offline Therude

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:ListView con sottoelementi - Numero elementi corretto ma senza contenuto
« Risposta #1 il: 28 Settembre 2012, 15:07:02 CEST »
0
Nessuno che mi dia una mano?? Anche solo bozze di soluzioni.. ho davvero finito le idee..

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:ListView con sottoelementi - Numero elementi corretto ma senza contenuto
« Risposta #2 il: 28 Settembre 2012, 15:22:04 CEST »
0
Alla riga

Codice (Java): [Seleziona]
SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.custom_row_view, new String[] {"Player", "Position"}, new int[] {android.R.id.text1, android.R.id.text2});
devi cambiare android.R.id.text1 in R.id.text1 e idem per il 2

Offline Therude

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:ListView con sottoelementi - Numero elementi corretto ma senza contenuto
« Risposta #3 il: 28 Settembre 2012, 15:38:46 CEST »
0
Che errore stupido... Grazie mille.. Non sapevo più a che santo dedicarmi..
:)