Autore Topic: Problema OnItemClickListener su ListView layout personalizzato  (Letto 627 volte)

Offline SalvoCt

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet Asus
  • Sistema operativo:
    Windows 7
0
Ciao ragazzi! Ho il seguente problema ! Sto reallizzando una ListView con adapter personalizzato, nel quale ho un immagine un bottone e diverse TextView, il problema che al click non succede niente e non ho nemmeno errori sul log cat! Vi posto un po di codice!

item_list
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/contItem"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content" >


    <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginBottom="10dp"
       android:background="@drawable/back_item_list_product"
       android:orientation="horizontal" >

        <RelativeLayout
           android:id="@+id/contAnteprima"
           android:layout_width="wrap_content"
           android:layout_height="match_parent"
           android:gravity="bottom" >

        </RelativeLayout>

        <LinearLayout
           android:id="@+id/contNomeProd"
           android:layout_width="198dp"
           android:layout_height="match_parent"
           android:layout_gravity="center"
           android:orientation="vertical" >




            <TextView
               android:id="@+id/nomeProd"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_gravity="left"
               android:layout_marginLeft="10dp"
               android:layout_marginTop="25dp"
             
               android:maxLines="2"
               android:minLines="1"
               android:text="Large Text"
               android:textAppearance="?android:attr/textAppearanceLarge"
               android:textColor="#000000"
               android:textSize="16dp" />





            <FrameLayout
               android:id="@+id/frameLayout1"
               android:layout_width="match_parent"
               android:layout_height="5dp"
               android:layout_gravity="center"
               android:layout_marginTop="8dp"
               android:background="@drawable/separetor_catalog_desc" >

            </FrameLayout>
        </LinearLayout>


        <LinearLayout
           android:id="@+id/linearLayout2"
           android:layout_width="wrap_content"
           android:layout_height="match_parent"
           android:layout_marginLeft="2dp"
           android:layout_marginRight="10dp"
           android:orientation="vertical" >

              <FrameLayout
               android:id="@+id/frameLayout2"
               android:layout_width="match_parent"
               android:layout_height="wrap_content" >


                <TextView
                   android:id="@+id/lblCodice"
                   android:layout_width="match_parent"
                   android:layout_height="wrap_content"
                   android:layout_gravity="right"
                   android:gravity="right"
               
                   android:text="Large Text"
                   android:textAppearance="?android:attr/textAppearanceLarge"
                   android:textColor="#000000"
                   android:textSize="12dp" />

            </FrameLayout>




            <FrameLayout
               android:id="@+id/frameLayout3"
               android:layout_width="143dp"
               android:layout_height="14dp"
               android:layout_gravity="bottom"
               android:layout_marginTop="32dp"
               android:background="@drawable/back_quant_default_list" >


                <TextView
                   android:id="@+id/lblQuantita"
                   android:layout_width="match_parent"
                   android:layout_height="wrap_content"
                   android:layout_gravity="center_vertical"
                   android:layout_marginRight="5dp"
                   android:gravity="right"
                   android:text="Large Text"
                   android:textAppearance="?android:attr/textAppearanceLarge"
                   android:textColor="#000000"
                   android:textSize="12dp" />

            </FrameLayout>
        </LinearLayout>
    </LinearLayout>

e l'adapter
Codice (Java): [Seleziona]
public View getView(final int position, View convertView, ViewGroup parent) {
                ViewHolder holder = null;

       
                if (convertView == null) {
                        convertView = inflater.inflate(R.layout.item_list_product, null);

                        holder = new ViewHolder();
                        holder.code = (TextView) convertView.findViewById(R.id.lblCodice);
                        holder.name = (TextView) convertView.findViewById(R.id.nomeProd);
                        //holder.image = (ImageView) convertView.findViewById(R.id.ant_prodotto_lista);
                        holder.quant = (TextView) convertView.findViewById(R.id.lblQuantita);
                        //holder.button=(ImageView)convertView.findViewById(R.id.btn_agg_prod_list);
                        //holder.button.setFocusable(false);
               
                       
                       

                        convertView.setTag(holder);
                } else {
                        holder = (ViewHolder) convertView.getTag();

                }

                InfoProdotto product = null;

                synchronized (mLock) {
                        product = dataCloned.get(position);
                }

                if (product != null) {

                        // CODE'S
                        holder.code.setText("Cod. "+product.getCodice());
                        holder.code.setTypeface(this.faceCodeQuant);
               

                        // NAME'S
                        holder.name.setText(product.getNome().toUpperCase());
                        holder.name.setTypeface(this.faceNome);
                       

                        // PREVIEW'S PRODUCT
                /*     
                        try {
                                holder.image.setImageBitmap(IManager.decodeStream(context.getAssets().open("catalogo_immagini/"+product.getNomeImg())));
                        } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                */

                        // NUMBER PRODUCT ORDER

                        holder.quant.setText("" + product.getQuantita());
                        holder.quant.setTypeface(this.faceCodeQuant);
                       

                        if (product.getQuantita() == 0)
                                holder.quant.setVisibility(View.GONE);
                        else
                                holder.quant.setVisibility(View.VISIBLE);

               
                       
                }
               
       
                       
                       
                       
                       

                return convertView;



        }

Ho cercato sia sul forum che su internet ma non ho risolto :(

Offline SalvoCt

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet Asus
  • Sistema operativo:
    Windows 7
Re:Problema OnItemClickListener su ListView layout personalizzato
« Risposta #1 il: 12 Marzo 2012, 11:25:27 CET »
0
Nessuno mi sa dare un'aiuto? :'(

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Re:Problema OnItemClickListener su ListView layout personalizzato
« Risposta #2 il: 14 Marzo 2012, 10:11:33 CET »
0
mmm guardando il codice non trovo l'implementazione dei metodi events...
devi implementare l'interfaccia relativa all'evento che vuoi gestire (nel tuo caso onClick credo...o giù di li, non ti so dare molto aiuto al riguardo perché sto guardando anche io un pò come funziona )
Leandro Rocchi
Software Developer - Geodatabase Designer

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Problema OnItemClickListener su ListView layout personalizzato
« Risposta #3 il: 14 Marzo 2012, 10:31:11 CET »
0
Non vedo il bottone nell'xml.

Avevo anche io un problema simile, avevo un Button in ogni riga della mia ListView, ma premendolo non succedeva nulla, allora dopo un po' di ricerche sono giunto a questa soluzione.
Nel mio Button ho messo:

Codice (XML): [Seleziona]
android:onClick="myClick"
E nella mia Activity ho dichiarato:

Codice (Java): [Seleziona]
public void myClick(View view) {
     int position = myListView.getPositionForView(view)
     // sfrutto la position per fare qualcosa, lanciare Activity, ...
}

Credo sia una soluzione abbastanza pulita e funziona a dovere.

Saluti.
I numeri contano molto di più del seme.

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Re:Problema OnItemClickListener su ListView layout personalizzato
« Risposta #4 il: 14 Marzo 2012, 10:42:10 CET »
0
Si si esatto, ho implementato anche io il Click in questa maniera.Tra l'altro se si ha l'accortezza di passare all'adapter una struttura gestita da una classe (stile Bean di Java) si può facilmente ricavare tutte le info dell'elemento cliccato senza menarsela a scrivere altro codice  :-)
Leandro Rocchi
Software Developer - Geodatabase Designer

Offline SalvoCt

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet Asus
  • Sistema operativo:
    Windows 7
Re:Problema OnItemClickListener su ListView layout personalizzato
« Risposta #5 il: 14 Marzo 2012, 17:18:34 CET »
0
Grazie per le dritte :) Ora provo e vi faccio sapere!