Autore Topic: Problema visualizzazione dati su layout  (Letto 357 volte)

Offline aledpa

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
Problema visualizzazione dati su layout
« il: 11 Febbraio 2014, 18:39:39 CET »
0
Salve,
sto realizzando una activity che riceve un array di dati da un server, questi dati vorrei visualizzarli in un layout che contiene una intestazione in una parte e nell'altra l'elenco di voci,
questo è il codice:

Codice (Java): [Seleziona]
@Override
                protected void onPostExecute(final ArrayList<Commento> list) {
                        mAuthTask = null;
                        showProgress(false);
                        TableLayout elencoCommenti = null;
                        // riempio l'intestazione
                        TextView tv_data_commento = (TextView) findViewById(R.id.tv_data_commento);
                        tv_data_commento.setText(dataGara);
                        TextView tv_squadra_casa_commenti = (TextView) findViewById(R.id.tv_squadra_casa_commenti);
                        tv_squadra_casa_commenti.setText(squadraCasa);
                        TextView tv_risultato = (TextView) findViewById(R.id.tv_risultato);
                        tv_risultato.setText(risultato);
                        TextView tv_squadra_fuori_casa_commenti = (TextView) findViewById(R.id.tv_squadra_fuori_casa_commenti);
                        tv_squadra_fuori_casa_commenti.setText(squadraFuoriCasa);
                        LinearLayout intestazione = (LinearLayout) findViewById(R.id.layout_intestazione);
                        intestazione.setVisibility(View.VISIBLE);
                        // fine intestazione
                       
                        System.out.println("la dimensione di list è: " + list.size());
                       
                        if (list != null){      // successo
                                //      Prendo il riferimento della tabella che costituisce il corpo della classifica
                                //      riempiendolo con tante righe quante le squadre della serie scelta
                                elencoCommenti = (TableLayout) findViewById(R.id.tabella_visualizza_commenti);
                                //      ora aggiungo le righe della classifica
                        for(int i=0; i< list.size(); i++){
                                System.out.println("leggo list " + i);
                                TableRow nuovaRiga = aggiungiRigaAllaTabella(list.get(i));
                                        elencoCommenti.addView(nuovaRiga);
                                }
                        }
                        else                            // scaricamento della classifica fallito
                                Toast.makeText(getApplicationContext(), "Errore in recupero", Toast.LENGTH_LONG).show();
                }
       
                private TableRow aggiungiRigaAllaTabella(Commento recordCommento) {
                        TableRow nuovaRiga = new TableRow(getBaseContext());
                        nuovaRiga.setGravity(Gravity.CENTER);
                        LinearLayout layoutEsternoRiga = new LinearLayout(getBaseContext()), layoutInternoRiga = new LinearLayout(getBaseContext());
                        // layout esterno
                        layoutEsternoRiga.setOrientation(LinearLayout.VERTICAL);
                        layoutEsternoRiga.setGravity(Gravity.CENTER);
                        LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
                                        LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);  //lunghezza, altezza
                        layoutEsternoRiga.setLayoutParams(param);
                       
                        // layout interno
                        layoutInternoRiga.setOrientation(LinearLayout.HORIZONTAL);
                        layoutInternoRiga.setGravity(Gravity.CENTER);
                        layoutInternoRiga.setWeightSum(100);
                        //---------------
                        TextView tvMinuto, tvCommento, tvAutore;
                       
                        //      tipo commento
                        ImageView tipoCommento = new ImageView(getBaseContext());
                        String tipoLetto = recordCommento.getTipo();
                        if(tipoLetto.equals("Gol")){
                                tipoCommento.setImageResource(getResources().getIdentifier("golfatto","drawable", getPackageName()));
                        }
                        if(tipoLetto.equals("Sostituzione")){
                                tipoCommento.setImageResource(getResources().getIdentifier("sostituzione","drawable", getPackageName()));
                        }
                        if(tipoLetto.equals("Ammonizione")){
                                tipoCommento.setImageResource(getResources().getIdentifier("ammonizione","drawable", getPackageName()));
                        }
                        if(tipoLetto.equals("Espulsione")){
                                tipoCommento.setImageResource(getResources().getIdentifier("espulsione","drawable", getPackageName()));
                        }
                        if(tipoLetto.equals("Autogol")){
                                tipoCommento.setImageResource(getResources().getIdentifier("autogol","drawable", getPackageName()));
                        }
                        if(tipoLetto.equals("Rigore Parato")){
                                tipoCommento.setImageResource(getResources().getIdentifier("rigoreparato","drawable", getPackageName()));
                        }
                        if(tipoLetto.equals("Fischio")){
                                tipoCommento.setImageResource(getResources().getIdentifier("fischio","drawable", getPackageName()));
                        }
                        if(tipoLetto.equals("")){
                                tipoCommento.setImageResource(getResources().getIdentifier("vuoto","drawable", getPackageName()));
                        }
                        tipoCommento.setLayoutParams(new LinearLayout.LayoutParams(
                                LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 15));     //lunghezza, altezza, peso
                        //      minuto
                        tvMinuto = creaTextView(recordCommento.getMinuto());
                        tvMinuto.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 15));
                        //      autore
                        tvAutore = creaTextView(recordCommento.getAutore());
                        tvAutore.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 70));
                               
                        layoutInternoRiga.addView(tipoCommento);
                        layoutInternoRiga.addView(tvMinuto);
                        layoutInternoRiga.addView(tvAutore);
                               
                        layoutEsternoRiga.addView(layoutInternoRiga);
                        //      commento
                        tvCommento = creaTextView(recordCommento.getCommento());
                        tvAutore.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
                       
                        layoutEsternoRiga.addView(tvCommento);
               
                        nuovaRiga.addView(layoutEsternoRiga);
                    return nuovaRiga;  
        }

                private TextView creaTextView(String testo){            // raggruppo tutti gli elementi comuni alle textview della classifica
                        TextView nuova = new TextView(getBaseContext());
                        nuova.setText(testo);
                        nuova.setBackgroundResource(R.drawable.cell_shape);
                        nuova.setTextSize(14);
                        nuova.setGravity(Gravity.CENTER);
                        nuova.setPadding(8, 8, 8, 8);
                        nuova.setTextColor(Color.BLACK);
                        return nuova;
                }

e il file xml è:
Codice (Java): [Seleziona]
<merge xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".VisualizzaCommenti_Activity" >

    <!-- Recovery progress -->

    <LinearLayout
        android:id="@+id/download_commenti_status"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:visibility="gone" >

        <ProgressBar
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp" />

        <TextView
            android:id="@+id/download_commenti_status_message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp"
            android:fontFamily="sans-serif-light"
            android:text="@string/login_progress_signing_in"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </LinearLayout>

    <!-- Comments form -->

    <ScrollView
        android:id="@+id/visualizza_commenti_form"
        android:layout_width="match_parent"
        android:layout_height="match_parent"    >

        <LinearLayout
            android:id="@+id/tabella_generale_visualizza_commenti"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#aaddff"
            android:gravity="center"
            android:orientation="vertical"
            android:paddingBottom="5sp"
            android:weightSum="100" >

            <LinearLayout
                android:id="@+id/layout_intestazione"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="20"
                android:background="#00bb33"
                android:gravity="center"
                android:orientation="vertical"
                android:visibility="gone" >

                <TextView
                    android:id="@+id/tv_data_commento"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:paddingBottom="3sp"
                    android:paddingTop="3sp"
                    android:text="xx/xx/xxxx"
                    android:textColor="#ffffff"
                    android:textSize="16sp" />

                <LinearLayout
                    android:id="@+id/layout_informazioni"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:weightSum="100" >

                    <TextView
                        android:id="@+id/tv_squadra_casa_commenti"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="40"
                        android:gravity="center"
                        android:paddingBottom="2sp"
                        android:paddingRight="10sp"
                        android:text="prova"
                        android:textColor="#ffffff"
                        android:textSize="20sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/tv_risultato"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="20"
                        android:gravity="center"
                        android:paddingBottom="2sp"
                        android:paddingLeft="10sp"
                        android:paddingRight="10sp"
                        android:text="x-x"
                        android:textColor="#ffffff"
                        android:textSize="20sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/tv_squadra_fuori_casa_commenti"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="40"
                        android:gravity="center"
                        android:paddingBottom="2sp"
                        android:paddingLeft="10sp"
                        android:text="prova"
                        android:textColor="#ffffff"
                        android:textSize="20sp"
                        android:textStyle="bold" />
                </LinearLayout>
            </LinearLayout>

            <TableLayout
                android:id="@+id/tabella_visualizza_commenti"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="80"
                android:gravity="center"
                android:paddingBottom="5sp"     >
                       
                        </TableLayout>
           
        </LinearLayout>
       
    </ScrollView>

</merge>

mi viene visualizzata solo l'intestazione e non capisco dove sbaglio, i dati sono sicuro che arrivano, dove faccio stampare "leggo list + i" ho provato a fare scrivere i dati del record e ci sono correttamente,
nell'immagine allegata ciò che vedo: