Autore Topic: Problema con inflate  (Letto 991 volte)

Offline dessorry

  • Utente normale
  • ***
  • Post: 230
  • Who lived hoping died craping
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire HD
  • Play Store ID:
    dessorry
  • Sistema operativo:
    Windows, Ubuntu, Kubuntu
Problema con inflate
« il: 28 Marzo 2011, 19:44:58 CEST »
0
Ciao a tutti, ho un problema che non riesco a risolvere ormai da diversi giorni:
non riesco a vedere il bordo di una tabella se la crea dinamicamente con inflate, mi spiego meglio:

rigarosa.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_height="@dimen/title_height"
   android:layout_width="fill_parent"
   android:gravity="center_vertical"
   android:layout_marginBottom="1dp"
   android:background="@color/title_text"
   >
</TableRow>

scrittanera.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="UTF-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"        
android:layout_height="fill_parent"    
android:gravity="center_vertical"  
android:textSize="@dimen/text_size_medium2"        
android:textColor="@color/nome_giocatore"              
android:singleLine="true"        
android:ellipsize="end"    
android:background="@color/title_text"  
/>

logosquadra.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="UTF-8"?>
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:background="@color/title_text"
/>

ok, questi erano gli xml di layout, il codice è questo (riporto solo le fasi che toccano le cose del layout):
Codice (Java): [Seleziona]
super.onCreate(savedInstanceState);
                Bundle extras = getIntent().getExtras();
                table = new TableLayout(this);
                table=(TableLayout) getLayoutInflater().inflate(R.layout.tabella, null);
                db = new MyDatabase(getApplicationContext());
                db.open();
                Cursor cursor;
                application = (Acquisti) this.getApplication();
                res = getResources();
                cursor = db.fetchAttaccanti();
                int nomeIndex = cursor.getColumnIndex(GiocatoriMetaData.NOME);
                int squadraIndex = cursor.getColumnIndex(GiocatoriMetaData.SQUADRA);
                int codiceIndex = cursor.getColumnIndex(GiocatoriMetaData.CODICE);
                while (cursor.moveToNext()) {
                        String nome = cursor.getString(nomeIndex);
                        String squadra = cursor.getString(squadraIndex);
                        TableRow tr = new TableRow(this);
                        tr=(TableRow) getLayoutInflater().inflate(R.layout.rigarosa, null);
                        TextView t1 = new TextView(this);
                        t1=(TextView) getLayoutInflater().inflate(R.layout.scrittanera, null);
                        t1.setText(nome);
                        ImageView img = new ImageView(this);
                        img=(ImageView) getLayoutInflater().inflate(R.layout.logosquadra, null);
                        if (squadra.equalsIgnoreCase("BAR"))
                                img.setImageDrawable(res.getDrawable(R.drawable.bari));
                        else if (squadra.equalsIgnoreCase("BOL"))
                                img.setImageDrawable(res.getDrawable(R.drawable.bologna));
                        else if (squadra.equalsIgnoreCase("BRE"))
                                img.setImageDrawable(res.getDrawable(R.drawable.brescia));
                        else if (squadra.equalsIgnoreCase("CAG"))
                                img.setImageDrawable(res.getDrawable(R.drawable.cagliari));
                        else if (squadra.equalsIgnoreCase("CAT"))
                                img.setImageDrawable(res.getDrawable(R.drawable.catania));
                        else if (squadra.equalsIgnoreCase("CES"))
                                img.setImageDrawable(res.getDrawable(R.drawable.cesena));
                        else if (squadra.equalsIgnoreCase("CHI"))
                                img.setImageDrawable(res.getDrawable(R.drawable.chievo));
                        else if (squadra.equalsIgnoreCase("FIO"))
                                img.setImageDrawable(res.getDrawable(R.drawable.fiorentina));
                        else if (squadra.equalsIgnoreCase("GEN"))
                                img.setImageDrawable(res.getDrawable(R.drawable.genoa));
                        else if (squadra.equalsIgnoreCase("INT"))
                                img.setImageDrawable(res.getDrawable(R.drawable.inter));
                        else if (squadra.equalsIgnoreCase("JUV"))
                                img.setImageDrawable(res.getDrawable(R.drawable.juventus));
                        else if (squadra.equalsIgnoreCase("LAZ"))
                                img.setImageDrawable(res.getDrawable(R.drawable.lazio));
                        else if (squadra.equalsIgnoreCase("LEC"))
                                img.setImageDrawable(res.getDrawable(R.drawable.lecce));
                        else if (squadra.equalsIgnoreCase("MIL"))
                                img.setImageDrawable(res.getDrawable(R.drawable.milan));
                        else if (squadra.equalsIgnoreCase("NAP"))
                                img.setImageDrawable(res.getDrawable(R.drawable.napoli));
                        else if (squadra.equalsIgnoreCase("PAL"))
                                img.setImageDrawable(res.getDrawable(R.drawable.palermo));
                        else if (squadra.equalsIgnoreCase("PAR"))
                                img.setImageDrawable(res.getDrawable(R.drawable.parma));
                        else if (squadra.equalsIgnoreCase("ROM"))
                                img.setImageDrawable(res.getDrawable(R.drawable.roma));
                        else if (squadra.equalsIgnoreCase("SAM"))
                                img.setImageDrawable(res.getDrawable(R.drawable.sampdoria));
                        else if (squadra.equalsIgnoreCase("UDI"))
                                img.setImageDrawable(res.getDrawable(R.drawable.udinese));
                        tr.addView(t1);
                        tr.addView(img);
                        table.addView(tr);
                }
                cursor.close();
                setContentView(table);

il bordo grigio in basso non si vede in nessuna delle righe create a runtime, per pura prova avevo inserito in tabella.xml una prima riga e su questo invece il bordo lo vedo correttamente:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
                       
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:stretchColumns="*"
               android:background="@color/bordo2">
                <TableRow
                       android:orientation="vertical"
   android:layout_height="@dimen/title_height"
   android:layout_width="fill_parent"
   android:gravity="center_vertical"
   android:layout_marginBottom="1dp"
   android:background="@color/title_text">
                       <TextView
android:layout_width="wrap_content"        
android:layout_height="fill_parent"    
android:gravity="center_vertical"  
android:textSize="@dimen/text_size_medium2"        
android:textColor="@color/nome_giocatore"              
android:singleLine="true"        
android:ellipsize="end"    
android:background="@color/title_text"  
android:text="BATISTUTA Gabriel Omar"
/>
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:background="@color/title_text"
android:src="@drawable/fiorentina"
/>
                </TableRow>
        </TableLayout>



grazie a tutti


« Ultima modifica: 28 Marzo 2011, 21:37:51 CEST da dessorry »

Offline dessorry

  • Utente normale
  • ***
  • Post: 230
  • Who lived hoping died craping
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire HD
  • Play Store ID:
    dessorry
  • Sistema operativo:
    Windows, Ubuntu, Kubuntu
Re:Problema con inflate
« Risposta #1 il: 29 Marzo 2011, 10:47:13 CEST »
0
up please  :D

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Problema con inflate
« Risposta #2 il: 29 Marzo 2011, 11:58:49 CEST »
0
up please  :D
prova con un po di padding/margin alla view interna alla riga
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline dessorry

  • Utente normale
  • ***
  • Post: 230
  • Who lived hoping died craping
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire HD
  • Play Store ID:
    dessorry
  • Sistema operativo:
    Windows, Ubuntu, Kubuntu
Re:Problema con inflate
« Risposta #3 il: 29 Marzo 2011, 12:57:55 CEST »
0
già provato, non hai idea di quante ne ho provate!!

la cosa strana è che non capisco il motivo per cui da xml funziona mentre da codice a runtime no!! quando i layout sono identici!!!!
com'è possibile che a runtime con inflate si perda un margin?