CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: con ben Thanks ricevuti nelle ultime 24 ore
Utente della settimana: bluemask con ben 5 Thanks ricevuti negli ultimi sette giorni
Utente del mese: bluemask con ben 15 Thanks ricevuti nell'ultimo mese

Pagina 4 di 6 primaprima ... 23456 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 31 a 40 su 57
Discussione:

colore background ed effetto su evento click

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #31
    Androidiano


    Registrato dal
    Oct 2009
    Messaggi
    97

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ok, dentro l'if dell'adapter prova con:

    ((LinearLayout)findViewById(R.id.layoutarticoli)). setBackgroundResource(R.color.secondo);

  2.  
  3. #32
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    mi da un errore dicendomi che

    LinearLayout cannot be resolved to a type

  4. #33
    Androidiano


    Registrato dal
    Oct 2009
    Messaggi
    97

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Hai fatto l'import della classe LinearLayout?

  5. #34
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    era per quello grazieee....ora ho un problema che mi cambia lo sfondo dell'item sbagliato, cioè non di quello con quantità uguale a zero...molto probabilmente ho un problema sul cursor e sulla posizione che la becca sbagliata....

  6. #35
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    azzarola non so come fare a passargli la posizione del cursor per settare a quale items far cambiare il colore.....

     
    1
    2
    if(Integer.parseInt(cur.getString( mQtaIndex ))==0){
    3
                    
    4
                    cur.moveToPosition(posizione);
    5
                    ((LinearLayout)findViewById(R.id.layoutarticoli)).setBackgroundResource(R.color.primo);
    6
                }
    7


    facendo così non cambia nulla cioè mi cambia il colore dell'item sbagliato...un'altra cosa che non capisco è come mai il colore non viene subito cambiato ma devo andare con lo scrolling sull'elemento con quantità uguale a zero prima di vedere il colore di sfondo dell'item cambiare....

  7. #36
    Androidiano


    Registrato dal
    Oct 2009
    Messaggi
    97

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    In teoria l'adapter non lo dovevi piu toccare, dovresti assicurarti che siano giuste le funzioni nell'Activity.

  8. #37
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    le funzioni dell'activity dovrebbero essere giuste solo che si becca la posizione dell'item a cui cambiare il colore di sfondo a caso e quindi cambia il colore ad un item casuale e non a quello con quantità=0....bhoooooo

  9. #38
    Androidiano


    Registrato dal
    Oct 2009
    Messaggi
    97

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Puoi postare la parte di codice dove fai la query al db e anche quella dove dichiari le costanti statiche che si riferiscono al numero della colonna?

    Quello che suppongo faccia questo metodo:

    db2.fetchProducts2();

  10. #39
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    db2.fectchproducts2 restituisce il cursor che fa questa query:

    8
     
    1
    2
    //metodo per fare la query di alcuni specificati elementi della tabella articolo e della tabella logspesadb dove prodotti.IDARA=logspesadb.IDARL
    3
        //Con questa query creiamo la lista della spesa vera e propria
    4
        public Cursor fetchProducts2(){ 
    5
            return mDb.rawQuery("SELECT prodotti._id,logspesadb._id2,prodotti.NOMEAR,prodotti.URIIMG,logspesadb.QUANTITA,logspesadb.IDARL FROM prodotti,logspesadb WHERE prodotti.IDARA=logspesadb.IDARL", null);
    6
            
    7
        }
    8


    la parte che fa riferimento all'adapter è questa:
    7
     
    1
    2
     // !!query che ci restituisce tutti i prodotti in lista spesa e li passa ad un Cursor!!
    3
            cursore=db2.fetchProducts2(); 
    4
            startManagingCursor(cursore);
    5
            adaptatore = new MyAdapter(this, cursore);
    6
            productsLv.setAdapter(adaptatore); //la listview ha questo adapter
    7


    dove la classe MyAdapter è la seguente:
    55
     
    1
    2
    //GESTIONE MYADAPTER  
    3
       class MyAdapter extends ResourceCursorAdapter {
    4
    5
          // private int    mIdIndex;
    6
            private int mNameIndex;
    7
            private int mUriIndex;
    8
            private int mQtaIndex;
    9
                
    10
            
    11
    12
            public MyAdapter(Context context, Cursor cur) {
    13
               super(context, R.layout.product, cur);
    14
               
    15
               //mIdIndex = cur.getColumnIndex( MyDatabase2.ProductsMetaDataArt.PRODUCT_ID_KEY);
    16
               mNameIndex = cur.getColumnIndex( MyDatabase2.ProductsMetaDataArt.PRODUCT_NOME_KEY);
    17
               mUriIndex = cur.getColumnIndex( MyDatabase2.ProductsMetaDataArt.PRODUCT_URIIMG_KEY);
    18
               mQtaIndex = cur.getColumnIndex( MyDatabase2.ProductsMetaDataLog.PRODUCT_QUANT_KEY);
    19
       
    20
           }
    21
    22
           @Override
    23
            public View newView ( Context context, Cursor cur, ViewGroup parent ) {
    24
               LayoutInflater li = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    25
               return li.inflate(R.layout.product, parent, false);
    26
            }
    27
    28
            @Override
    29
           public void bindView(View view, Context context, Cursor cur) {
    30
                //TextView idAr = ( TextView ) view.findViewById( R.id.Idar );
    31
                TextView nameAr = ( TextView ) view.findViewById( R.id.Nomear );
    32
                TextView qtaAr = ( TextView ) view.findViewById( R.id.Qtaar );
    33
                ImageView imageAr = (ImageView) view.findViewById(R.id.ImageArticolo);
    34
    35
                //idAr.setText( cur.getString( mIdIndex ) );
    36
                nameAr.setText( cur.getString( mNameIndex ) );
    37
                qtaAr.setText( cur.getString( mQtaIndex ) );
    38
                imageAr.setImageURI(Uri.parse(cur.getString( mUriIndex )));
    39
    40
                   
    41
                    if(Integer.parseInt(cur.getString(mQtaIndex))==0){
    42
                        
    43
                       ((LinearLayout)findViewById(R.id.layoutarticoli)).setBackgroundResource(R.color.primo);
    44
                    }
    45
                
    46
                
    47
           }
    48
            
    49
            
    50
        
    51
       } //Fine class MyAdapter extends ResourceCursorAdapter
    52
     //FINE GESTIONE MYADAPTER     
    53
    54
    55


    mentre questa è la parte dove gestisco tutti gli OnClick() sugli elementi sulla listview...il problema è sicuramente sul cursore che becca la posizione sbagliata dell'emento a cui cambiare il colore di sfondo....ad esempio quando una quantità va a zero il colore non cambia...il cursore va sul primo elemento della listview e solo quando vado a scrollare sull'elemento con quantità = 0 mi si cambia il colore di sfondo di un elemento a caso...nel mio caso sempre il terzo elemento della listview...non riesco proprio a capire il perchè...ora ti posto l'ultima parte che ti ho menzionato qua...

  11. #40
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Eccola:

    77
     
    1
    2
    AdapterView.OnItemClickListener mItemListener = new OnItemClickListener() {
    3
                   public void onItemClick(AdapterView<?> adapter, View v,int pos,long id) {
    4
                       
    5
                       //String st = "Clicked POS="+pos+" ID="+id;
    6
                       //Toast.makeText(getApplicationContext(),st,Toast.LENGTH_SHORT).show(); 
    7
                       
    8
                       posizione = pos;
    9
                       db2.open();
    10
                       Cursor r = db2.fetchProducts2();
    11
                       startManagingCursor(r);
    12
                       r.moveToPosition(pos);
    13
                       adaptatore.notifyDataSetChanged();
    14
    15
                       int mNameIndex = r.getColumnIndex( MyDatabase2.ProductsMetaDataArt.PRODUCT_NOME_KEY);
    16
                       int mUriIndex = r.getColumnIndex( MyDatabase2.ProductsMetaDataArt.PRODUCT_URIIMG_KEY);
    17
                                  
    18
                       ImageView image = new ImageView(activity);   
    19
                       AlertDialog.Builder builder = new AlertDialog.Builder(activity);
    20
                     
    21
                       String s = r.getString(mUriIndex).substring(8);
    22
                       s=s.replaceAll("%20", " ");
    23
                       String myJpgPath = s;
    24
                       BitmapFactory.Options options = new BitmapFactory.Options();
    25
                       options.inSampleSize = 2;            
    26
                       Bitmap bm = BitmapFactory.decodeFile(myJpgPath, options);
    27
                       image.setImageBitmap(bm); //Sostituisci la tua bitmap
    28
                       builder.setTitle("Conferma Acquisto");
    29
                       builder.setIcon(R.drawable.carrello);
    30
                       builder.setView(image);
    31
                       
    32
    33
                       builder.setNegativeButton("Annulla", new DialogInterface.OnClickListener() {
    34
                         public void onClick(DialogInterface dialog, int id) {
    35
                             dialog.cancel();  
    36
                         }
    37
                       });
    38
                       
    39
                       builder.setMessage("Vuoi acquistare una confezione di "+r.getString(mNameIndex)+" ?").setCancelable(false);     
    40
                       builder.setPositiveButton("Conferma", new DialogInterface.OnClickListener() {                      
    41
                           public void onClick(DialogInterface dialog, int id) {
    42
                               
    43
                               db2.open();
    44
                               Cursor f = db2.fetchProducts2();
    45
                               startManagingCursor(f);
    46
                               f.moveToPosition(posizione);
    47
    48
                               int mIdIndex = f.getColumnIndex( MyDatabase2.ProductsMetaDataLog.PRODUCT_ID_KEY);           
    49
                               int mQtaIndex = f.getColumnIndex( MyDatabase2.ProductsMetaDataLog.PRODUCT_QUANT_KEY); 
    50
                               
    51
                               //Creiamo il progress dialog 
    52
                               View v = new View(activity);
    53
                               manageProgress2(v);
    54
                               
    55
                               db2.updateQuantita(Integer.parseInt(f.getString(mIdIndex)), Integer.parseInt(f.getString(mQtaIndex))-1);
    56
                               boolean b = f.requery();
    57
                               Log.i("REQUERY?", String.valueOf(b));                          
    58
                               adaptatore = new MyAdapter(activity,f);
    59
                               adaptatore.notifyDataSetChanged();
    60
                               ((ListView)findViewById(R.id.productsLv)).setAdapter(adaptatore);
    61
                               
    62
                               db2.close();     
    63
                               dialog.cancel();
    64
                                  }
    65
                              });
    66
                       
    67
                       builder.create().show();
    68
                       db2.close();    
    69
                   }  
    70
                };      
    71
                ((ListView)findViewById(R.id.productsLv)).setOnItemClickListener(mItemListener);
    72
                    
    73
    74
                
    75
        
    76
                db2.close();
    77


    come alternativa potrei eliminare dalla listview l'elemento con quantità uguale a zero che forse è più comodo e meno dispendioso come difficoltà....tu hai qualche idea di come potrei fare per fare l'operazione di delete dell'item con quantità =0???
    ti ringrazio di tutto l'aiuto..ciao
    Ultima modifica di sangio85; 10-11-10 alle 12:41

Pagina 4 di 6 primaprima ... 23456 ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy