Non hai postato le costanti.![]()
Non hai postato le costanti.![]()
Questa è la classe che crea il mio database:
All'interno dell'activity alle colonne del db mi ricollego cosi:
dimmi pure se sono stato esaudiente o meno
ti ringrazio ciao
Si, pero pensavo ad un altro errore invece è tutto giusto (salvo che non mi sia scappato qualcosa)...
Riproviamo ancora con il MyAdapter, prova a cambiarlo cosi:
codice://GESTIONE MYADAPTER class MyAdapter extends ResourceCursorAdapter { // private int mIdIndex; private int mNameIndex; private int mUriIndex; private int mQtaIndex; public MyAdapter(Context context, Cursor cur) { super(context, R.layout.product, cur); } @Override public View newView ( Context context, Cursor cur, ViewGroup parent ) { LayoutInflater li = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); return li.inflate(R.layout.product, parent, false); } @Override public void bindView(View view, Context context, Cursor cur) { //TextView idAr = ( TextView ) view.findViewById( R.id.Idar ); TextView nameAr = ( TextView ) view.findViewById( R.id.Nomear ); TextView qtaAr = ( TextView ) view.findViewById( R.id.Qtaar ); ImageView imageAr = (ImageView) view.findViewById(R.id.ImageArticolo); //mIdIndex = cur.getColumnIndex( MyDatabase2.ProductsMetaDataArt.PRODUCT_ID_KEY); mNameIndex = cur.getColumnIndex( MyDatabase2.ProductsMetaDataArt.PRODUCT_NOME_KEY); mUriIndex = cur.getColumnIndex( MyDatabase2.ProductsMetaDataArt.PRODUCT_URIIMG_KEY); mQtaIndex = cur.getColumnIndex( MyDatabase2.ProductsMetaDataLog.PRODUCT_QUANT_KEY); //idAr.setText( cur.getString( mIdIndex ) ); nameAr.setText( cur.getString( mNameIndex ) ); qtaAr.setText( cur.getString( mQtaIndex ) ); imageAr.setImageURI(Uri.parse(cur.getString( mUriIndex ))); if(Integer.parseInt(cur.getString(mQtaIndex))==0){ ((LinearLayout)findViewById(R.id.layoutarticoli)).setBackgroundResource(R.color.primo); } } } //Fine class MyAdapter extends ResourceCursorAdapter //FINE GESTIONE MYADAPTER
azzarola non funziona ancora...nemmeno così...mi sa che ci rinuncio e vado di eliminazione della riga con quantità uguale a zero..non so come mai ma con i cursor sclera e mi fa lo scherzetto di cambiare lo sfondo ad un item della listview diverso una volta che scrollando la lista vado sull'elemento con quantità uguale a zero...per eliminare l'elemento dalla listview hai qualche idea? mi spiace che ti sto facendo sclerare su sta cosa..cmq grazie 1000 per l'aiuto che mi stai dando...
La ListView ricicla le view che visualizza man mano che si scorre (è una ottimizzazione per evitare di allocare centinaia di oggetti uguali) per questo motivo settando su un elemento uno sfondo di un colore diverso succede che scorrendo si vedano altri elementi diversi colorati lo stesso.
Mi sembra che ci sia qualche metodo da invocare sulla ListView per cambiarne il comportamento e bypassare questa cosa però non ricordo (non ne ho avuto bisogno finora).
Questo forse può essere un punto di partenza:
ListView Backgrounds: An Optimization | Android Developers
In quell'articolo spiega tutt'altra cosa.
E' vero che la listview ricicla le view che escono dallo schermo, ma in questo caso i valori li ri-inserisce, anche perchè le textview hanno il testo giusto.
Eh, sì, lo so, ma non trovo l'articolo giusto, mi sembra che sia dello stesso autore.
Comunque è esattamente come dici te, i valori vengono visualizzati corretti, ma alcune cose come appunto i background restano settati anche per altri item, l'ho sperimentato pure io, ma poi ho cambiato implementazione e
non ho più avuto bisogno di colorare gli item diversi...
Io credo che procederò nel seguente modo:
avendo a disposizione un database SQLite con la tabella che contiene le quantità degli articoli che sono in lista della spesa (cioè che sono da comperare) vado a verificare se la quantità di un articolo raggiunge quantità=0 ed elimino (facendo un delete) la riga corrispondente dalla tabella relativa di modo che così facendo, quando subito dopo il delete ripasso il nuovo cursore con la query all'adapter, non vedo più l'articolo con quantità uguale a zero, ma tale articolo lo vedrò nella listview (a parte apribile dal menu) degli articoli che sono fuori lista della spesa che possono essere anche loro acquistati....cosa ne dite???
grazie di tutto ciao!
...non riesco ad andare a fare la verifica se la quantità di un prodotto è andata a zero...questo è il codice java che gestisce gli onclick sulla listview...
non riesco a capire come mai non mi entra in questo if
io qui vorrei andare a eliminare dal db nella tabella logspesadb l'oggetto che ha quantità = 0 che poi facendo subito la f.requery(); dovrebbe scomparire dalla listview degli oggetti in lista spesa ed andare nella lista degli articoli fuori lista spesa....non capisco perchè non mi entri nell'if...eppure il cursor è settato a "posizione" cioè la posizione
dell'elemento a cui faccio l'onclick...
grazie in anticipo per l'aiuto...
Ultima modifica di sangio85; 11-11-10 alle 18:28