Autore Topic: Crash ListView  (Letto 311 volte)

Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Crash ListView
« il: 22 Marzo 2014, 17:48:16 CET »
0
Vorrei realizzare una listview con 4 text view accompagnate sempre dallo stesso titolo. ora vi mostro il layout.
list_element_ric_fam:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="wrap_content"
   android:layout_height="match_parent" >

    <TextView
       android:id="@+id/txt1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:text="@string/nom_dc"
       android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
       android:id="@+id/nome_docente"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_alignRight="@+id/txt1"
       android:layout_below="@+id/txt1" />

    <TextView
       android:id="@+id/txt2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignBottom="@+id/txt1"
       android:layout_alignParentTop="true"
       android:layout_marginLeft="24dp"
       android:layout_toRightOf="@+id/txt1"
       android:text="@string/gg"
       android:textAppearance="?android:attr/textAppearanceMedium" />



    <TextView
       android:id="@+id/txt3"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_below="@+id/nome_docente"
       android:layout_marginTop="18dp"
       android:text="@string/d"
       android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
       android:id="@+id/g_day"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignLeft="@+id/txt2"
       android:layout_below="@+id/txt2" />

    <TextView
       android:id="@+id/d_ora"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_below="@+id/txt3" />

    <TextView
       android:id="@+id/txt4"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_above="@+id/d_ora"
       android:layout_toLeftOf="@+id/g_day"
       android:text="@string/a"
       android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
       android:id="@+id/a_ora"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignBaseline="@+id/d_ora"
       android:layout_alignBottom="@+id/d_ora"
       android:layout_alignLeft="@+id/txt4"/>

</RelativeLayout>
Ho ipostato 4 titoli e 4 text view vuote in cui andranno man mano i valori.
ho creato un bean ecco il codice RIC_FAM:
Codice (Java): [Seleziona]
package com.sorrentinoandrea.bean;

public class RIC_FAM {
        private String nom;
    private String day;
    private String da_a;
    private String a_a;
   
    public RIC_FAM(String nom, String day, String da_a, String a_a){
        this.nom=nom;
        this.day=day;
        this.da_a=da_a;
        this.a_a=a_a;
    }
    public String getNom() {
        return nom;
    }
    public void setNom(String nom) {
        this.nom = nom;
    }
    public String getDay() {
        return day;
    }
    public void setDay(String day) {
        this.day = day;
    }
    public String getDa_a() {
        return da_a;
    }
    public void setDa_a(String da_a) {
        this.da_a = da_a;
    }
    public String getA_a() {
        return a_a;
    }
    public void setA_a(String a_a) {
        this.a_a = a_a;
    }

}
e poi ho creato un adapter chiamato "CustomListViewric_fam" :
Codice (Java): [Seleziona]
package com.sorrentinoandrea.adapters;

import java.util.List;
import com.sorrentinoandrea.bean.RIC_FAM;
import com.sorrentinoandrea.itipacinottimobile.R;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class CustomListViewric_fam extends ArrayAdapter<RIC_FAM> {
        Context context;
         
    public CustomListViewric_fam(Context context, int resourceId,
            List<RIC_FAM> items) {
        super(context, resourceId, items);
        this.context = context;
    }
    private class ViewHolder {
        TextView txtnom;
        TextView txtday;
        TextView txtda_a;
        TextView txta_a;
    }
   
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        RIC_FAM rf = getItem(position);
 
        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.list_element_ric_fam, null);
            holder = new ViewHolder();
            holder.txtnom = (TextView) convertView.findViewById(R.id.nome_docente);
            holder.txtday = (TextView) convertView.findViewById(R.id.g_day);
            holder.txtda_a = (TextView) convertView.findViewById(R.id.d_ora);
            holder.txta_a = (TextView) convertView.findViewById(R.id.a_ora);
            convertView.setTag(holder);
        } else
            holder = (ViewHolder) convertView.getTag();
 
        holder.txtnom.setText(rf.getNom());
        holder.txtday.setText(rf.getDay());
        holder.txtda_a.setText(rf.getDa_a());
        holder.txta_a.setText(rf.getA_a());
        return convertView;
    }

}
e poi la mia activity "RIC_DOC":
Codice (Java): [Seleziona]
package com.sorrentinoandrea.itipacinottimobile;



import java.util.ArrayList;
import java.util.List;

import com.sorrentinoandrea.adapters.CustomListViewric_fam;
import com.sorrentinoandrea.bean.RIC_FAM;

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;



public class RIC_DOC extends Activity implements OnItemClickListener {
        public static final String[] noms = new String[] { "ACANFORA MARIA TERESA","AMBROSIO GIUSEPPE","AMENDOLA ALFONSO",
                "ANZELMO ANNITA","APOSTOLO GIOVANNI","BABSIA ANTONIO","BAGGIANO VITTORIO","BALDI GINA",
                "BALSAMO FRANCESCA","BALZANO MARIA GRAZIA","BARRA FRANCISCO","BELCORE FRANCESCO","BENINCASA LUCIANO",
                "CAIAZZO SALVATORE","CAROTENUTO ANTONIO","CAROTENUTO GIUSEPPE","CASABURI FRANCESCO","CAVALIERE IOLANDA",
                "CAVALLARO PLACIDO","CELENTANO FABIANA","CELENTANO UMBERTO","CEMBALO LUIGI","CESARANO ANTONIO",
                "CHIARIELLO FRANCA","CIRILLO ANGELA ROSA","COCCIA ALFONSO","CORRADO SALVATORE","CUOZZO GRAZIANO GIUSEPPE",
                "DE CONCILIO CAMILLO","DELLI PRISCOLI ROBERTA","DESIDERIO ANTONIO","DESIDERIO SILVIO","DI LEO TOMMASO",
                "DI MARTINO MICHELA","DI SESSA PATRIZIA","DI MAURO ANNA","DI MONTE PATRIZIA","DI PALMA ANGELA","EBOLI MARIA EUGENIA",
                "FATTORUSO ANTONIO","FENIELLO CRISTINA","FERRAIOLI ANTONIO","FORLANO LOREDANA","GAGLIANO ANNA",
                "GALDI MATTEO","GAMBERO WILMA","GENCO GIUSEPPE","GIGI CARMINE","GILBLAS VINCENZO","GIORGIO RAFFAELE",
                "INGENITO DOMENICO","IZZO ROSA","LA MARCA CATERINA","LADALARDO ANTONIO","LANGELLA LUISA",
                "LAPENTA GIUSEPPE","LAURITO SAVERIO","LAURO GERARDO","LAVORIA NAZARENO","LEPORE ANNA IMMACOLATA",
                "LIGUORI ANNA","LUCIBELLO STEFANO","LUONGO MARIA ROSARIA","MACERA MARIA ROSARIA","MAIORINO ANTONIO",
                "MALAFRONTE VINCENZO","MARRAZZO ANTONIETTA","MAZZARELLA PASQUALE","MERCOGLIANO GILDA","MILITE DARIO",
                "MILITE RAFFAELE","MILONE ENRICO","NAPOLETANO FILOMENA","NAPOLI GIOVANNA","OLIVA ACHILLE",
                "PADUANO ROSALBA","PALLINO RICCARDO","PANAGROSSO FERDINANDO","PANARIELLO GIUSEPPINA",
                "PEPE GERARDO","PEPE GIUSEPPE","POLLINE FRANCESCO","ROMANO ANNA","ROSSANO TERESA","RUOCCO RAFFAELE",
                "RUSSO ANTONIA","SALERNO DOMENICO","SALZANO VINCENZO","SANTONICOLA SILVANA","SAPORITO MAURIZIO",
                "SAVARESE GIOVANNI","SCARPATO CARLO","SCOGNAMIGLIO LUCIA","SCOGNAMIGLIO SALVATORE","SERINO OBERDAN",
                "SIMPLICIO MARA","SPINELLI LUIGI","SPOSATO SOFIA","STANZIONE ANIELLO","STARACE GIUSEPPE",
                "TAMBURRINO MONICA","TEDESCO GIOVANNI","TODISCO LUIGI","VACCARO FRANCESCO","VASTA ANGELA MARIA",
                "VERNASSI GIULIO","VIGLIOTTI ANNAMARIA","VIOLA ALESSANDRA","VITIELLO FRANCESCO","VOTO GIOVANNI"};
        public static final String[] g_gs= new String[]{"sabato","sabato","venerdi","venerdi","lunedi","mercoledi","giovedi",
        "venerdi","martedi","martedi","lunedi","venerdi","venerdi","giovedi","mercolei","lunedi","giovedi","venerdi",
        "sabato","venerdi","giovedi","sabato","mercoledi","giovedi","mercoledi","martedi","venerdi","venerdi",
        "giovedi","martedi","giovedi","martedi","sabato","martedi","giovedi","mercoledi","giovedi",
        "mercoledi","martedi","martedi","venerdi","giovedi","martedi","sabato","lunedi","martedi","martedi","martedi",
        "venerdi","venerdi","martedi","martedi","lunedi","lunedi","mercoledi","martedi","sabato","martedi","giovedi",
        "lunedi","martedi","lunedi","venerdi","giovedi","martedi","martedi","martedi","venerdi","venerdi",
        "venerdi","mercoledi","venerdi","giovedi","martedi","mercoledi","venerdi","giovedi","venerdi","mercoledi",
        "venerdi","sabato","mercoledi","venerdi","lunedi","lunedi","venerdi","martedi","venerdi","giovedi","martedi",
        "lunedi","mercoledi","lunedi","sabato","venerdi","martedi","venerdi","mercoledi","lunedi","venerdi",
        "martedi","mercoledi","venerdi","mercoledi","sabato","venerdi","venerdi","mercoledi","martedi",
        "martedi"};
        public static final String[] d_ds= new String[]{"10.00","9.00","12.00","9.00","12.00","12.00","11.00","9.00","11.00","9.00",
        "9.00","10.00","11.00","11.00","11.00","10.00","10.00","9.00","9.00","11.00","9.00","10.00","11.00","11.00",
        "10.00","11.00","11.00","10.00","9.00","11.00","10.00","10.00","10.00","10.00","11.00","10.00","11.00","10.00",
        "10.00","11.00","11.00","12.00","11.00","10.00","11.00","9.00","9.00","10.00","9.00","10.00","11.00",
        "10.00","12.00","10.00","10.00","8.00","10.00","11.00","9.00","9.00","9.00","12.00","11.00","10.00",
        "11.00","9.00","9.00","10.00","12.00","9.00","10.00","12.00","11.00","11.00","10.00","10.00","10.00","10.00",
        "10.00","9.00","9.00","11.00","9.00","10.00","10.00","10.00","11.00","10.00","10.00","11.00","11.00","11.00",
        "9.00","10.00","11.00","10.00","11.00","11.00","9.00","10.00","9.00","11.00","9.00","10.00","9.00","9.00",
        "9.00"};
        public static final String[] a_as= new String[]{"11.00","10.00","13.00","10.00","13.00","13.00","12.00","10.00",
        "12.00","10.00","10.00","11.00","12.00","12.00","12.00","12.00","11.00","11.00","10.00","10.00","12.00",
        "10.00","11.00","12.00","12.00","11.00","12.00","12.00","11.00","10.00","11.00","11.00","11.00","11.00",
        "12.00","11.00","12.00","11.00","11.00","12.00","12.00","13.00","12.00","11.00","12.00",
        "10.00","10.00","11.00","10.00","11.00","12.00","11.00","13.00","11.00","11.00","9.00","11.00",
        "12.00","10.00","10.00","10.00","13.00","12.00","11.00","12.00","10.00","10.0","11.00","13.00","10.00",
        "11.00","13.00","12.00","12.00","11.00","11.00","11.00","11.00","11.00","10.00","10.00","12.00",
        "10.00","11.00","11.00","11.00","12.00","11.00","11.00","12.00","12.00","12.00","10.00","11.00","12.00",
        "11.00","12.00","12.00","10.00","11.00","10.00","12.00","10.00","11.00","10.00","10.00","10.00","10.00"};
    ListView listw;
    List<RIC_FAM> rf;
        public void onCreate(Bundle bundle){
                super.onCreate(bundle);
                setContentView(R.layout.contact_list_ric_fam);
                setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                rf = new ArrayList<RIC_FAM>();
        for (int i = 0; i < noms.length; i++) {
            RIC_FAM item = new RIC_FAM(noms[i], g_gs[i], d_ds[i],a_as[i]);
            rf.add(item);
        }
        listw = (ListView) findViewById(R.id.list);
        CustomListViewric_fam adapter = new CustomListViewric_fam(this,
                R.layout.list_element_ric_fam, rf);
        listw.setAdapter(adapter);
        listw.setOnItemClickListener(this);
        }
       
         @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {
                Toast toast = Toast.makeText(getApplicationContext(),
                    "Item " + (position + 1) + ": " + rf.get(position),
                    Toast.LENGTH_SHORT);
                toast.show();
            }
               
}              
Ecco a tutti il mio codice per creare una list view. quando passo a questa activity_ mi crasha l'app e non sò il perchè. potete aiutarmi per favore?? >.<  ho seguito questa guida http://theopentutorials.com/tutorials/android/listview/android-custom-listview-with-image-and-text-using-arrayadapter/. Grazie per la pazienza
« Ultima modifica: 22 Marzo 2014, 18:37:40 CET da Ricky` »

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +153
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Ennesimo Problema in una listview, mi crasha, entrate che vi spiego
« Risposta #1 il: 22 Marzo 2014, 18:15:07 CET »
0
Posta il logcat

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Crash ListView
« Risposta #2 il: 22 Marzo 2014, 18:38:53 CET »
+1
Io fossi in te mi leggerei qualche guida su come scrivere pulito... è terrificante!

Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Re:Crash ListView
« Risposta #3 il: 23 Marzo 2014, 07:46:23 CET »
0
Scusatemi il ritardo, ma ieri mi sono addormentato subito dopo aver postato quel topic.
ecco il log cat, clicco sul bottone che mi dovrebbe portare ad un altra activity con dentro la lista. ma mi crasha.
logcat:
03-23 07:37:19.720: I/ActivityManager(61): Displayed com.sorrentinoandrea.itipacinottimobile/.Main: +3s765ms (total +33s384ms)
03-23 07:37:19.720: I/ActivityManager(61): Displayed com.android.launcher/com.android.launcher2.Launcher: +33s386ms
03-23 07:37:23.065: I/InputReader(61): Device reconfigured: id=0x0, name=qwerty2, display size is now 480x800
03-23 07:37:23.065: I/InputManager-Callbacks(61): No virtual keys found for device qwerty2.
03-23 07:37:23.550: I/ARMAssembler(61): generated scanline__00000177:03515104_00001002_00000000 [ 87 ipp] (110 ins) at [0x44c7e520:0x44c7e6d8] in 831001 ns
03-23 07:37:23.610: I/ARMAssembler(61): generated scanline__00000077:03515104_00001004_00000000 [ 65 ipp] (85 ins) at [0x44c7e6e0:0x44c7e834] in 971000 ns
03-23 07:37:23.680: I/ARMAssembler(61): generated scanline__00000177:03515104_00001001_00000000 [ 91 ipp] (114 ins) at [0x44c7e838:0x44c7ea00] in 420000 ns
03-23 07:37:27.929: I/ActivityManager(61): Starting: Intent { cmp=com.sorrentinoandrea.itipacinottimobile/.Didattica } from pid 333
03-23 07:37:28.119: D/dalvikvm(333): GC_EXTERNAL_ALLOC freed 14K, 51% free 2642K/5379K, external 3383K/3903K, paused 53ms
03-23 07:37:28.779: I/ActivityManager(61): Displayed com.sorrentinoandrea.itipacinottimobile/.Didattica: +793ms
03-23 07:37:36.160: I/ActivityManager(61): Starting: Intent { cmp=com.sorrentinoandrea.itipacinottimobile/.RIC_DOC } from pid 333
03-23 07:37:36.380: D/dalvikvm(333): GC_EXTERNAL_ALLOC freed 10K, 51% free 2677K/5379K, external 5929K/6098K, paused 35ms


Ho fatto un'altra prova con un emulatore android 4.4:
03-23 03:51:57.220: E/AndroidRuntime(983): FATAL EXCEPTION: main
03-23 03:51:57.220: E/AndroidRuntime(983): Process: com.sorrentinoandrea.itipacinottimobile, PID: 983
03-23 03:51:57.220: E/AndroidRuntime(983): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sorrentinoandrea.itipacinottimobile/com.sorrentinoandrea.itipacinottimobile.RIC_DOC}: java.lang.ArrayIndexOutOfBoundsException: length=107; index=107
03-23 03:51:57.220: E/AndroidRuntime(983):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
03-23 03:51:57.220: E/AndroidRuntime(983):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
03-23 03:51:57.220: E/AndroidRuntime(983):    at android.app.ActivityThread.access$700(ActivityThread.java:135)
03-23 03:51:57.220: E/AndroidRuntime(983):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
03-23 03:51:57.220: E/AndroidRuntime(983):    at android.os.Handler.dispatchMessage(Handler.java:102)
03-23 03:51:57.220: E/AndroidRuntime(983):    at android.os.Looper.loop(Looper.java:137)
03-23 03:51:57.220: E/AndroidRuntime(983):    at android.app.ActivityThread.main(ActivityThread.java:4998)
03-23 03:51:57.220: E/AndroidRuntime(983):    at java.lang.reflect.Method.invokeNative(Native Method)
03-23 03:51:57.220: E/AndroidRuntime(983):    at java.lang.reflect.Method.invoke(Method.java:515)
03-23 03:51:57.220: E/AndroidRuntime(983):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
03-23 03:51:57.220: E/AndroidRuntime(983):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
03-23 03:51:57.220: E/AndroidRuntime(983):    at dalvik.system.NativeStart.main(Native Method)
03-23 03:51:57.220: E/AndroidRuntime(983): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=107; index=107
03-23 03:51:57.220: E/AndroidRuntime(983):    at com.sorrentinoandrea.itipacinottimobile.RIC_DOC.onCreate(RIC_DOC.java:83)
03-23 03:51:57.220: E/AndroidRuntime(983):    at android.app.Activity.performCreate(Activity.java:5243)
03-23 03:51:57.220: E/AndroidRuntime(983):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-23 03:51:57.220: E/AndroidRuntime(983):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
03-23 03:51:57.220: E/AndroidRuntime(983):    ... 11 more
03-23 03:52:00.660: I/Process(983): Sending signal. PID: 983 SIG: 9
03-23 03:52:02.310: D/dalvikvm(1088): GC_FOR_ALLOC freed 73K, 5% free 2889K/3040K, paused 75ms, total 79ms
03-23 03:52:02.330: I/dalvikvm-heap(1088): Grow heap (frag case) to 4.353MB for 1536016-byte allocation
03-23 03:52:02.380: D/dalvikvm(1088): GC_FOR_ALLOC freed 2K, 4% free 4387K/4544K, paused 44ms, total 45ms
03-23 03:52:02.870: D/gralloc_goldfish(1088): Emulator without GPU emulation detected.
« Ultima modifica: 23 Marzo 2014, 08:54:58 CET da Hildian »

Offline mirkus87

  • Utente junior
  • **
  • Post: 56
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
  • Play Store ID:
    Mirko Vitiello
  • Sistema operativo:
    Windows 7
Re:Crash ListView
« Risposta #4 il: 23 Marzo 2014, 11:22:02 CET »
0
potrebbe essere un problema degli array "g_gs,d_ds,a_as" che contengono meno valori rispetto all'array "noms" ,in quanto il for per caricare la lista parte appunto da quest'ultimo array
Quindi controlla che lunghezza degli array sia uguale per tutti e quattro gli array (prima di fare il for stampa sul logCat la lunghezza di ogni array)

Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Re:Crash ListView
« Risposta #5 il: 23 Marzo 2014, 11:32:24 CET »
0
Ti ringrazio ora provvedo.

Post unito: 23 Marzo 2014, 11:39:41 CET
Grazie mille avevi ragione, ho provato con 3 nomi e funziona alla perfezione. grazie
« Ultima modifica: 23 Marzo 2014, 11:39:41 CET da Hildian, Reason: Merged DoublePost »