Autore Topic: Aggiungere dinamicamente row ad una tabview  (Letto 1207 volte)

Offline AndFan

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Tattoo
Aggiungere dinamicamente row ad una tabview
« il: 04 Aprile 2011, 20:11:41 CEST »
0
Salve a tutti!
come da titolo vorrei aggiungere dinamicamente delle row ad un tableview che ho dichiarato nel file xml dell'activity.
In compilazione non da alcun errore, mentre in esecuzione l'applicazione va in crash.
qui l'activity
Codice (Java): [Seleziona]
package it.pack.myandroid;



import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.RelativeLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TableRow.LayoutParams;
import android.widget.TextView;


public class Mia_activity extends Activity{
       
       
           
   
        public void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.mia_activity);
               
               TableLayout tl= (TableLayout)findViewById(R.id.layout_table);
                 
               for (int i=0; i<10;i++)
               {
                   
                   TableRow row = new TableRow(this);
                   row.setLayoutParams(new LayoutParams(
                   LayoutParams.FILL_PARENT,
                   LayoutParams.WRAP_CONTENT));
                   
                   TextView txt = new TextView(this);
                   txt.setText("row dinamica "+i);
                   txt.setLayoutParams(new LayoutParams(
                                                LayoutParams.FILL_PARENT,
                                                LayoutParams.WRAP_CONTENT));
                   
                   /* Add Button to row. */
                   row.addView(txt);
                   /* Add row to TableLayout.*/
                   tl.addView(row);
                   
                  }
               
           }


}
qui l'xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
android:id="@+id/layout_table"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_centerHorizontal="true"
android:layout_below="@+id/header_result"
android:stretchColumns="1"
>
</TableLayout>
qui il logcat
Codice: [Seleziona]
04-04 15:25:04.432: ERROR/AndroidRuntime(1032): Uncaught handler: thread main exiting due to uncaught exception
04-04 15:25:04.442: ERROR/AndroidRuntime(1032): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.pack.myandroid/it.pack.myandroid.Mia_activity}: java.lang.NullPointerException
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at android.app.ActivityThread.access$2100(ActivityThread.java:116)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at android.os.Looper.loop(Looper.java:123)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at android.app.ActivityThread.main(ActivityThread.java:4203)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at java.lang.reflect.Method.invokeNative(Native Method)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at java.lang.reflect.Method.invoke(Method.java:521)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at dalvik.system.NativeStart.main(Native Method)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032): Caused by: java.lang.NullPointerException
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at it.pack.myandroid.Mia_activity.onCreate(Result.java:43)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
04-04 15:25:04.442: ERROR/AndroidRuntime(1032):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)

l'errore quindi è alla riga in cui aggiungo la row creata alla table.
è sbagliata la logica che ho seguito?

grazie a tutti per l'attenzione!

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Aggiungere dinamicamente row ad una tabview
« Risposta #1 il: 04 Aprile 2011, 20:42:48 CEST »
+1
La riga è proprio quella?

Vuol dire che la findViewById non restituisce nulla.
Prova a controllare se è null, l'oggetto tl.

Il file XML si chiama mia_activity.xml, corretto?

Ad occhio mi sembra tutto pulito.

7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline AndFan

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Tattoo
Re:Aggiungere dinamicamente row ad una tabview
« Risposta #2 il: 04 Aprile 2011, 23:32:09 CEST »
0
si, mi segnala quella. e il file xml ha quel nome.

ho aggiunto questo controllo per verificare
Codice (Java): [Seleziona]
if (tl.equals(null))
               {
                   Log.i("è null??", "SI " + savedInstanceState);
                                   
               }
               else
               {
                   Log.i("è null??", "NO" + savedInstanceState);
                                   
               }
il ciu output è
Codice: [Seleziona]
04-04 18:45:34.852: INFO/è null??(1165): NO null
non sono sicuro però di aver usato il comando corretto..

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Aggiungere dinamicamente row ad una tabview
« Risposta #3 il: 04 Aprile 2011, 23:53:41 CEST »
0
stampati tl e basta.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline AndFan

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Tattoo
Re:Aggiungere dinamicamente row ad una tabview
« Risposta #4 il: 04 Aprile 2011, 23:59:03 CEST »
0
come faccio a stampare solo tl? :-[

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:Aggiungere dinamicamente row ad una tabview
« Risposta #5 il: 05 Aprile 2011, 02:13:05 CEST »
+1
Codice (Java): [Seleziona]
Log.i("è null?", "questo è il suo valore: "+tl +" e la savedinstance: "+ savedInstanceState);
ad ogni modo consiglio di lanciare la app in debug per problemi come questi

Offline AndFan

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Tattoo
Re:Aggiungere dinamicamente row ad una tabview
« Risposta #6 il: 05 Aprile 2011, 10:33:47 CEST »
0
 o_O
a quanto pare si è risolto da solo. Rispetto a ieri ho semplicemente spento il pc e cambiato Log.i(.....) come suggerito..

misteri della vita. metto risolto?

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:Aggiungere dinamicamente row ad una tabview
« Risposta #7 il: 05 Aprile 2011, 10:37:24 CEST »
0
metti risolto e pigia su thanks  :-)