Problem med ArrayAdapter och listview

Discussion in 'Frågor, support och diskussion' started by Dahliz91, Feb 14, 2012.

  1. Dahliz91

    Dahliz91 Senior Droid Medlem

    Joined:
    Jan 28, 2010
    Messages:
    1 084
    Likes Received:
    212
    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro

    MINA ENHETER

    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro
    När getView körs i restaurantadapter så kollar jag på raden
    # rowView.setTag(sqView);
    värdet på de tre textvyerna i sqView och name & address är null. Någon som förstår vad som kan vara fel?

    Min restaurant-list-item.xml
    http://pastie.org/3380546

    Min RestaurantAdapter:
    http://pastie.org/3380551
     
  2. nadam

    nadam Youth Droid Medlem

    Joined:
    Feb 10, 2010
    Messages:
    182
    Likes Received:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    Ser ut som att du gör inflate på fel xml-fil, R.layout.restaurant_item, men xml-filen heter restaurant-list-item.xml.
     
  3. Dahliz91

    Dahliz91 Senior Droid Medlem

    Joined:
    Jan 28, 2010
    Messages:
    1 084
    Likes Received:
    212
    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro

    MINA ENHETER

    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro
    Nej den heter så. Men kan kopiera LOGCAT.

    Den hittar ju TextViewn för distance men inte name och address.

    Code:
    02-15 12:34:03.396: V/.data.RestaurantAdapter(408): getView()
    02-15 12:34:17.007: D/AndroidRuntime(408): Shutting down VM
    02-15 12:34:17.007: W/dalvikvm(408): threadid=1: thread exiting with uncaught exception (group=0x40015560)
    02-15 12:34:17.297: E/AndroidRuntime(408): FATAL EXCEPTION: main
    02-15 12:34:17.297: E/AndroidRuntime(408): java.lang.NullPointerException
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at org.hrf.schystavillkor.data.RestaurantAdapter.getView(RestaurantAdapter.java:59)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.AbsListView.obtainView(AbsListView.java:1430)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.ListView.makeAndAddView(ListView.java:1745)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.ListView.fillDown(ListView.java:670)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.ListView.fillFromTop(ListView.java:727)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.ListView.layoutChildren(ListView.java:1584)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.AbsListView.onLayout(AbsListView.java:1260)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.view.View.layout(View.java:7175)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.view.View.layout(View.java:7175)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.view.View.layout(View.java:7175)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.view.View.layout(View.java:7175)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.view.View.layout(View.java:7175)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.view.View.layout(View.java:7175)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.view.View.layout(View.java:7175)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.view.ViewRoot.performTraversals(ViewRoot.java:1140)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.os.Looper.loop(Looper.java:130)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at android.app.ActivityThread.main(ActivityThread.java:3683)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at java.lang.reflect.Method.invokeNative(Native Method)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at java.lang.reflect.Method.invoke(Method.java:507)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    02-15 12:34:17.297: E/AndroidRuntime(408): 	at dalvik.system.NativeStart.main(Native Method)
    
     
  4. nadam

    nadam Youth Droid Medlem

    Joined:
    Feb 10, 2010
    Messages:
    182
    Likes Received:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    Skumt. Kan vara ett tillfälligt byggfel som strular till värdena i R-klassen. Löser sig i så fall genom att göra Clean.
     
  5. Dahliz91

    Dahliz91 Senior Droid Medlem

    Joined:
    Jan 28, 2010
    Messages:
    1 084
    Likes Received:
    212
    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro

    MINA ENHETER

    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro
    Det kan inte vara så att det beror på att de två som jag inte kommer åt ligger i en LinearLayout? Det funkade inte med clean nämligen. Finns det något annat sätt att göra en sån här adapter/list-item-vy. Vill ha så att distance visas till vänster och sedan att större delen av bredden är med namnet och under namnet adressen. Verkar ju uppenbarligen som att den LinearLayout ställer till problemet, för det är ju bara de två i den som är null.
     
  6. nadam

    nadam Youth Droid Medlem

    Joined:
    Feb 10, 2010
    Messages:
    182
    Likes Received:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    Att ha TextViews i LinearLayout är nog bland det vanligaste som görs i Android, så jag har svårt att tro att det skulle ställa till några problem.

    Har svårt att släppa mitt första tips. Om filen verkligen heter restaurant-list-item.xml så ska du komma åt den med R.layout.restaurant_list_item (inte R.layout.restaurant_item).
     
  7. Hemoroid

    Hemoroid Baby Droid Medlem

    Joined:
    Apr 7, 2010
    Messages:
    26
    Likes Received:
    5

    MINA ENHETER

    Kan inte vara så att du har en restaurant-item.xml OCH en restaurant-list-item.xml?
    Och att restaurant-item.xml innehåller distance men inte name och address?
     
  8. Dahliz91

    Dahliz91 Senior Droid Medlem

    Joined:
    Jan 28, 2010
    Messages:
    1 084
    Likes Received:
    212
    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro

    MINA ENHETER

    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro
    Är 100% säker på att det inte är så. Bytte namn på filen till restaurant-list-item.xml och ändrade till det i adaptern för att det skulle bli tydligare. Men är samma fel och var inga namnkrockar.
     
  9. nadam

    nadam Youth Droid Medlem

    Joined:
    Feb 10, 2010
    Messages:
    182
    Likes Received:
    31
    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact

    MINA ENHETER

    Operatör:
    Hallon
    Telefon:
    Sony Xperia XZ1 Compact
    Ok, sätt en breakpoint efter "rowView = inflater..." och kolla vad rowView innehåller. Kanske kan ge någon ledtråd.

    Om du vill så kan du zippa ihop hela projektet och maila till mig (adam [at] anyro [punkt] se).
     
  10. Dahliz91

    Dahliz91 Senior Droid Medlem

    Joined:
    Jan 28, 2010
    Messages:
    1 084
    Likes Received:
    212
    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro

    MINA ENHETER

    Operatör:
    Halebop
    Telefon:
    iPhone 12 Pro
    Jag har testat väldigt mycket fram och tillbaka och det är ju uppenbarligen så att den inte hittar textvyerna name och address. Vet inte om det är inflatern eller själva xml-filen som är problemet. Har provat att ta bort den inre LinearLayout så att de tre textvyerna ligger på samma nivå i hierarkin men funkar fortfarande inte.

    EDIT: Det verkar som att den har länkat in min gamla fil som inte låg i res-mappen, funkade i alla fall när jag återskapade projektet på min andra dator. Jätte skumt!

    EDIT 2: Stor tack för all hjälp!