Autore Topic: Implementare un button in una ListView  (Letto 2227 volte)

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Implementare un button in una ListView
« il: 13 Giugno 2011, 16:21:47 CEST »
0
Seguendo questo ottimo tutorial :http://www.anddev.it/index.php/topic,1087.0.html,sono riuscito ad impostare la listView e settare il button all'interno della stessa per ogni oggetto,ora ho bisogno di settare il button in modo tale che se premuto cancelli la riga dov'è contenuto.
In ogni riga della listView vengono visualizzati degli oggetti contenuti in un arrayList,quindi cliccando sul bottone dovrebbe essere cancellato l'oggetto,come potrei fare?

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 765
  • Respect: +159
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Implementare un button in una ListView
« Risposta #1 il: 14 Giugno 2011, 00:24:25 CEST »
0
Codice (Java): [Seleziona]
button.setOnItemClickListener(new OnItemClickListener() {
                        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                                arrayListDiOggetti.Remove(position);
                                listView.notifyDataSetChanged();
                        }
                });
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Implementare un button in una ListView
« Risposta #2 il: 14 Giugno 2011, 09:07:43 CEST »
0
Codice (Java): [Seleziona]
button.setOnItemClickListener(new OnItemClickListener() {
                        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                                arrayListDiOggetti.Remove(position);
                                listView.notifyDataSetChanged();
                        }
                });

Scusami per l'ignoranza ma questo va fatto nella classe Adapter o in quella della listaView?
Credo nell'adapter,se è nell'adapter però ho la necessità di conoscere sia l'arrayList che la listView.O mi sbaglio?

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Implementare un button in una ListView
« Risposta #3 il: 14 Giugno 2011, 09:34:51 CEST »
0
Risolto parzialmente il problema,ho dichiarato listView  e arrayList static e me li richiamo nella classe dell'adapter con NomeClasse.listView e NomeClasse.arrayList,non mi riconosce il metodo notifyDataSetChanged() vuole un cast BaseAdapter ma non funziona.

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 765
  • Respect: +159
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Implementare un button in una ListView
« Risposta #4 il: 14 Giugno 2011, 09:39:57 CEST »
0
Scusa forse la risposta era troppo sbrigativa. E non proprio corretta  :-P

Sempre basandomi sul tutorial che hai seguito, sostituisci

Codice (Java): [Seleziona]
btShowToast.setTag(person);
btShowToast.setOnClickListener(new OnClickListener() {
                        public void onClick(View view) {
                                Toast.makeText(
                                                view.getContext(),
                                                "Click sul bottone nella riga " + ((Person)view.getTag()).getFullName(),
                                                Toast.LENGTH_SHORT
                                                ).show();
                        }
                });

con

Codice (Java): [Seleziona]
btShowToast.setTag(0, person);
btShowToast.setTag(1, position);
btShowToast.setOnClickListener(new OnClickListener() {
                        public void onClick(View view) {
                                Toast.makeText(
                                                view.getContext(),
                                                "Click sul bottone nella riga " + ((Person)view.getTag(0)).getFullName() + ", indice ArrayList " + view.getTag(1).toString(),
                                                Toast.LENGTH_SHORT
                                                ).show();
                        }
                });

Inoltre nell'adapter rendi disponibile l'arrayList assegnandolo nel costruttore ad un campo dell'adapter, in modo da potervi accedere

Codice (Java): [Seleziona]
public class PersonAdapter extends ArrayAdapter<Person> {

        private int                             resource;
        private LayoutInflater  inflater;
        private List<Person> lista; //Questa

        public PersonAdapter ( Context context, int resourceId, List<Person> objects ) {
                super( context, resourceId, objects );
                resource = resourceId;
                inflater = LayoutInflater.from( context );
                lista = objects;
        }
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Implementare un button in una ListView
« Risposta #5 il: 14 Giugno 2011, 09:50:51 CEST »
0
Giusto per capire meglio e non fare solo un copia incolla
Codice (Java): [Seleziona]
btShowToast.setTag(0, person);
btShowToast.setTag(1, position);
btShowToast.setOnClickListener(new OnClickListener() {
                        public void onClick(View view) {
                                Toast.makeText(
                                                view.getContext(),
                                                "Click sul bottone nella riga " + ((Person)view.getTag(0)).getFullName() + ", indice ArrayList " + view.getTag(1).toString(),
                                                Toast.LENGTH_SHORT
                                                ).show();
                        }
                });

I setTag a cosa servono?
A me serve sempre cancellare una riga dalla listView al click del button cancella,quindi dopo aver cliccato il bottone la riga dovrebbe scomparire,quindi il comando
Codice (Java): [Seleziona]
listView.notifyDataSetChanged(); dove va messo e soprattutto perchè non mi viene riconosciuto?

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 765
  • Respect: +159
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Implementare un button in una ListView
« Risposta #6 il: 14 Giugno 2011, 10:07:16 CEST »
0
I setTag servono ad associare dei valori ad una view. E' un metodo di utilità generica per risalire a dei dati a partire da un componente per la visualizzazione.

Il notifyDataSerChanged serve per fare il refresh del ListView una volta che i dati sono cambati (in questo caso cancellati). Nell'esempio precedente ho lasciato il toast per farti vedere come vengono usati getTag per caricare i dati associati ad una view. Quello che serve a te è qualcosa del genere:

Codice (Java): [Seleziona]
btShowToast.setTag(0, person); //Memorizzo nel tag "0" l'oggetto contenente i dati (inutile in questo esempio)
btShowToast.setTag(1, position); //Memorizzo nel tag "1" l'indice dell'array
btShowToast.setOnClickListener(new OnClickListener() {
                        public void onClick(View view) {
                                int posizione = (int)view.getTag(1); //Carica l'indice dell'array nel quale è memorizzato l'elemento da cancellare
                                lista.remove(posizione); //Elimina l'elemento dall'array
                                lista.notifyDataSetChanged(); //Richiede il refresh del ListView
                        }
                });
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Implementare un button in una ListView
« Risposta #7 il: 14 Giugno 2011, 10:20:52 CEST »
0
Il problema è che non mi fa fare
Codice (Java): [Seleziona]
lista.notifyDataSetChanged(); //Richiede il refresh del ListView
                        }

Credo perchè lista non sia la listView ma l'arrayList dei miei prodotti.

Questa è la mia classe ProdottiAdapter
Codice (Java): [Seleziona]
package com.DoM;

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

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AdapterView.*;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class ProdottiAdapter extends ArrayAdapter<ProdottoConcorsoTransazionePunti> {

        private int                             resource;
        private LayoutInflater  inflater;
        ArrayList<ProdottoConcorsoTransazionePunti> lista;
       
        public ProdottiAdapter(Context context, int resourceId, ArrayList<ProdottoConcorsoTransazionePunti> objects ) {
                super( context, resourceId, objects );
                resource = resourceId;
                inflater = LayoutInflater.from( context );
                lista = objects;
        }
       

        //Associa a ciascun elemento una View personalizzata
        public View getView ( final int position, View convertView, ViewGroup parent ) {

                // Recuperiamo l'oggetti che dobbiamo inserire a questa posizione
                final ProdottoConcorsoTransazionePunti prodotto = getItem( position );

                ProdottoViewCache viewCache;

                if ( convertView == null ) {

                        convertView = ( LinearLayout ) inflater.inflate( resource, null );
                        viewCache = new ProdottoViewCache( convertView );
                        convertView.setTag( viewCache );
                }
                else {
                        convertView = ( LinearLayout ) convertView;
                        viewCache = ( ProdottoViewCache ) convertView.getTag();
                }

                // Prendiamo le view dalla cache e mettiamoci i valori
               
                TextView tvProdotto = viewCache.getTextViewNomeProdotto();
                tvProdotto.setText( prodotto.getDescrizone() );

                TextView tvQuantita = viewCache.getTextViewQuantitaInserita();
                //String QuantitaIns = Double.toString(prodotto.getQuantitaAcquistata());
                tvQuantita.setText(Double.toString(prodotto.getQuantitaAcquistata()));

                Button btCancel = viewCache.getButtonCanc();
                // Per praticit� metto un riferimento a "Person" nel tag del bottone
                btCancel.setTag(0,prodotto);
                btCancel.setTag(1, position);
           
                btCancel.setOnClickListener(new OnClickListener() {
                        public void onClick(View view) {
                        int posizione = (int)view.getTag(1);
                    lista.remove(position);  
                   
                        Toast.makeText(view.getContext(),"Eliminato prodotto: " +((ProdottoConcorsoTransazionePunti)view.getTag(0)).getDescrizone() + ", indice ArrayList " + view.getTag(1).toString(), Toast.LENGTH_SHORT).show();
                        for(ProdottoConcorsoTransazionePunti c : lista)
                {
                        Log.i("","" +c.getID_Prodotto());
                        Log.i("","" +c.getQuantitaAcquistata());
                }
                        }
                });
     
                return convertView;

        }
}

Questo mi da errore,non può fare il cast di object to int
Codice (Java): [Seleziona]
int posizione = (int)view.getTag(1);Mentre questa è la classe dove richiamo la listView
Codice (Java): [Seleziona]
package com.DoM;

import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;


public class CaricaProdottiActvity extends Activity {
        static ArrayList<ProdottoConcorsoTransazionePunti> listaInseriti = new ArrayList<ProdottoConcorsoTransazionePunti>();
        ArrayList<ProdottoConcorsiPortale> P = null;
        BusinessInfo bussInfo = null;
    EditText quantita;
    Button aggiungi;
    Button chiudi ;
    Button cancella;
        static ListView listView;
         @Override
            public void onCreate(Bundle savedInstanceState)
         {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.caricaprodotti);
                quantita =(EditText)findViewById(R.id.quantita1);
                aggiungi = (Button)findViewById(R.id.aggiungi);
                chiudi = (Button)findViewById(R.id.chiudi);

               
               
                Bundle b=this.getIntent().getExtras();
                P= (ArrayList<ProdottoConcorsiPortale>) b.getSerializable("ArrayProdotti");
                Bundle b1 = this.getIntent().getExtras();
                bussInfo =(BusinessInfo) b1.getSerializable("businessInfo");
               
                ArrayList<String> descrizione = new ArrayList<String>();
                for(ProdottoConcorsiPortale p :P)
                {
                        descrizione.add(p.getDescrizione());
                }
               
                ArrayAdapter<String> arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,descrizione);
                final Spinner sp = (Spinner) findViewById(R.id.spinner1);
                arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            sp.setAdapter(arrayAdapter);
           
            aggiungi.setOnClickListener(new OnClickListener()
                   {
                         
                          public void onClick(View v)
                          {
                      String nomeProdotto =(String) sp.getSelectedItem();
                      String qta = quantita.getText().toString();
                      double quant = Double.parseDouble(qta.toString());
                     
                   
                      for(ProdottoConcorsiPortale p : P)
                      {
                          ProdottoConcorsoTransazionePunti current = null ;
                          if(nomeProdotto.equalsIgnoreCase(p.getDescrizione()) && quant > 0)
                          {
                                  Log.i("ID","Valore id dell'oggetto selezionato " + p.getId());
                                  current = new ProdottoConcorsoTransazionePunti();
                                  current.setID_Prodotto(p.getId());
                                  current.setQuantitaAcquistata(quant);
                                  current.setDescrizione(p.getDescrizione());
                                  listaInseriti.add(current);
                           }
                         
                          if(nomeProdotto.equalsIgnoreCase(p.getDescrizione()) && quant <= 0)
                          {
                                Toast t =  Toast.makeText(getApplicationContext(),"La quantità non può essere 0.Reinseriscila per favore", Toast.LENGTH_LONG);
                                t.show();
                                quantita.setText("");
                          }
                           
                           
                      }
                      quantita.setText("");
                 
                    listView = ( ListView ) findViewById( R.id.listView1 );
                    ProdottiAdapter prod = new ProdottiAdapter(getApplicationContext(), R.layout.row, listaInseriti);
                        listView.setAdapter(prod);
             
                     }
                         
                   });   
           
                chiudi.setOnClickListener(new OnClickListener()
                 {
                        public void onClick(View v)
                          {
                                for(ProdottoConcorsoTransazionePunti c : listaInseriti)
                                {
                                        Log.i("","" +c.getID_Prodotto());
                                        Log.i("","" +c.getQuantitaAcquistata());
                                }
                               
                                Log.i("Dimensioni","Lunghezza lista" + listaInseriti.size());
                               
                                Intent intent = new Intent(CaricaProdottiActvity.this,CaricaPuntiActivity.class);
                                Bundle b1 = new Bundle();
                        b1.putSerializable("businessInfo",bussInfo);
                        intent.putExtras(b1);
                                Bundle b2 = new Bundle();
                                b2.putSerializable("ProdottiInseriti", listaInseriti);
                                intent.putExtras(b2);
                                startActivity(intent);
                               
                      }
                 });
           
               
           //     new BackgroundWorker().execute();
         }
         


Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 765
  • Respect: +159
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Implementare un button in una ListView
« Risposta #8 il: 14 Giugno 2011, 10:54:37 CEST »
+2
Prova così

Codice (Java): [Seleziona]
                btCancel.setOnClickListener(new OnClickListener() {
                        public void onClick(View view) {
                        int posizione = ((Integer)view.getTag(1)).intValue(); //Cambiato il cast
                        lista.remove(position);
                        ProdottiAdapter.notifyDataSetChanged(); //Richiede aggiornamento
                   
                        Toast.makeText(view.getContext(),"Eliminato prodotto: " +((ProdottoConcorsoTransazionePunti)view.getTag(0)).getDescrizone() + ", indice ArrayList " + view.getTag(1).toString(), Toast.LENGTH_SHORT).show();
                        for(ProdottoConcorsoTransazionePunti c : lista)
                {
                        Log.i("","" +c.getID_Prodotto());
                        Log.i("","" +c.getQuantitaAcquistata());
                }
                        }
                });
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Implementare un button in una ListView
« Risposta #9 il: 14 Giugno 2011, 11:03:29 CEST »
0
Infatti ho fatto così,l'adatper era l'unico a ricevere il notify.Ho usato
Codice (Java): [Seleziona]
CaricaProdottiActvity.prod.notifyDataSetChanged();ProdottiAdapter non me lo dava..

Comunque ho un'altra cosa da chiederti,nel tuo tutorial viene implementata una classe ListButton,credi debba implementarla anch'io?però non mi sembra che venga utilizzata nel codice,o sbaglio?

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 765
  • Respect: +159
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Implementare un button in una ListView
« Risposta #10 il: 14 Giugno 2011, 11:08:13 CEST »
0
Comunque ho un'altra cosa da chiederti,nel tuo tutorial viene implementata una classe ListButton,credi debba implementarla anch'io?però non mi sembra che venga utilizzata nel codice,o sbaglio?

No, a meno che tu non debba gestire il click sulla riga al di fuori dei bottoni.
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Implementare un button in una ListView
« Risposta #11 il: 14 Giugno 2011, 11:17:18 CEST »
0
Ok,grazie mille,mi sei stato di grande aiuto.

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Implementare un button in una ListView
« Risposta #12 il: 14 Giugno 2011, 11:59:46 CEST »
0
Posso riutilizzare il ProdottiAdapter creato in precedenza per visualizzare un altra listView(questa volta riassuntiva) in un altra actvity che mi visualizzi solo nome del prodotto e quantita?
Ho creato un nuovo row_riassunto.xml dove passo i due textview ma l'applicazione mi da errore qui:
Codice (Java): [Seleziona]
06-14 09:52:34.215: ERROR/AndroidRuntime(850):     at com.DoM.ProdottiAdapter.getView(ProdottiAdapter.java:53)
che sarebbe
Codice (Java): [Seleziona]
TextView tvProdotto = viewCache.getTextViewNomeProdotto();
                tvProdotto.setText( prodotto.getDescrizone() );//l'errore è qui

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 765
  • Respect: +159
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Implementare un button in una ListView
« Risposta #13 il: 14 Giugno 2011, 12:16:03 CEST »
0
Mi serve qualche dettaglio in più sull'errore... che tipo di errore è?

Posta tutto lo stacktrace dell'errore.
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Implementare un button in una ListView
« Risposta #14 il: 14 Giugno 2011, 12:35:56 CEST »
0
Allora ti spiego in dettaglio quello che devo fare.Ho un applicazione composta da 3 actvity,nella prima faccio il login e ricevo un array di prodotti che mando alla seconda actvity il quale gira questo array alla terza actvity dove tramite uno spinner popolo un nuovo arraylist che è quello che viene usato nella listView,e fin qui tutto bene,anche la fase di cancellazione del prodotto.Dalla terza actvity rimando indietro il nuovo arrayList con i prodotti scelti e devo visualizzarli in una nuova listView che contenga solo nome del prodotto e quantità.Non posso riutilazzare l'arrayadapter precedente perchè ho dovuto creare un nuovo row file e quindi anche il viewCache.Ho creato ProdottiAdapterResume:
Codice (Java): [Seleziona]
public class ProdottiAdapterResume  extends ArrayAdapter<ProdottoConcorsoTransazionePunti> {

        private int                             resource;
        private LayoutInflater  inflater;
        ArrayList<ProdottoConcorsoTransazionePunti> lista;
       
        public ProdottiAdapterResume(Context context, int resourceId, ArrayList<ProdottoConcorsoTransazionePunti> objects ) {
                super( context, resourceId, objects );
                resource = resourceId;
                inflater = LayoutInflater.from( context );
                lista = objects;
        }
       

        //Associa a ciascun elemento una View personalizzata
        public View getView ( final int position, View convertView, ViewGroup parent ) {

                // Recuperiamo l'oggetti che dobbiamo inserire a questa posizione
                final ProdottoConcorsoTransazionePunti prodotto = getItem( position );

                ProdottoViewCache viewCache;

                if ( convertView == null ) {

                        convertView = ( LinearLayout ) inflater.inflate( resource, null );
                        viewCache = new ProdottoViewCache( convertView );
                        convertView.setTag( viewCache );
                }
                else {
                        convertView = ( LinearLayout ) convertView;
                        viewCache = ( ProdottoViewCache ) convertView.getTag();
                }

                // Prendiamo le view dalla cache e mettiamoci i valori
               
                TextView tvProdotto = viewCache.getTextViewNomeProdotto();
                tvProdotto.setText( prodotto.getDescrizone() );

                TextView tvQuantita = viewCache.getTextViewQuantitaInserita();
                //String QuantitaIns = Double.toString(prodotto.getQuantitaAcquistata());
                tvQuantita.setText(Double.toString(prodotto.getQuantitaAcquistata()));
                return convertView;

        }
}

ProdottiViewCacheResume
Codice (Java): [Seleziona]
public class ProdottiViewCacheResume {
        private View            baseView;
        private TextView        textViewProdotto;
        private TextView        textViewQuantita;

        public ProdottiViewCacheResume ( View baseView ) {
                this.baseView = baseView;
        }

        public TextView getTextViewNomeProdotto () {
                if ( textViewProdotto == null ) {
                        textViewProdotto = ( TextView ) baseView.findViewById( R.id.DescrizioneRiass );
                }
                return textViewProdotto;
        }

        public TextView getTextViewQuantitaInserita () {
                if ( textViewQuantita == null ) {
                        textViewQuantita = ( TextView ) baseView.findViewById( R.id.QuantitàRiass );
                }
                return textViewQuantita;
        }



}

row_riassunto.xml
Codice: [Seleziona]
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <TextView android:text="Prodotto" android:id="@+id/DescrizioneRiass" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></TextView>
    <TextView android:text="Quantita" android:id="@+id/QuantitàRiass" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></TextView>
</LinearLayout>

e lo stralcio di codice dove creo e chiamo la listView:
Codice (Java): [Seleziona]
  listViewR = ( ListView ) findViewById( R.id.listViewRiassunto );
            prod = new ProdottiAdapterResume(getApplicationContext(), R.layout.row_riassunto, listaInseriti);
            listViewR.setAdapter(prod);
logcat:
Codice: [Seleziona]
06-14 10:09:38.975: ERROR/AndroidRuntime(895): FATAL EXCEPTION: main
06-14 10:09:38.975: ERROR/AndroidRuntime(895): java.lang.NullPointerException
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at com.DoM.ProdottiAdapterResume.getView(ProdottiAdapterResume.java:49)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.AbsListView.obtainView(AbsListView.java:1430)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.ListView.onMeasure(ListView.java:1102)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.view.View.measure(View.java:8313)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.view.View.measure(View.java:8313)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1074)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.ScrollView.onMeasure(ScrollView.java:296)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.view.View.measure(View.java:8313)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.view.View.measure(View.java:8313)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.view.View.measure(View.java:8313)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.view.View.measure(View.java:8313)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.os.Looper.loop(Looper.java:123)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at android.app.ActivityThread.main(ActivityThread.java:3683)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at java.lang.reflect.Method.invokeNative(Native Method)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at java.lang.reflect.Method.invoke(Method.java:507)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-14 10:09:38.975: ERROR/AndroidRuntime(895):     at dalvik.system.NativeStart.main(Native Method)