OnItemClickListener e OnClickListener non funzionano per ListView

Ho usato un ListView personalizzato e sto visualizzando alcuni dati utilizzando lo stesso ListView.

Quando faccio clic sull'elemento Visualizza elenco, l' onClickListener non viene chiamato. Non sono in grado di select alcun elemento di elenco.

  • Riga di aggiornamento sqlite di Android
  • Android Studio provoca l'arresto di Windows 8.1
  • Come posso generare il numero random in gamma in Android e mostrarlo in un field textView l'utente è quello che seleziona max no e no no?
  • Android: Come rendere la tastiera sempre visibile?
  • HttpURLConnection responsecode è random -1
  • Come implementare OnZoomListener su MapView
  • Codice di layout:

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginBottom="16dp" android:background="@drawable/list_selector" android:clickable="true" android:orientation="horizontal" android:padding="5dip" > <LinearLayout android:id="@+id/imgProperty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_marginRight="5dip" android:padding="3dip" > <ImageView android:id="@+id/list_image" android:layout_width="50dp" android:layout_height="50dp" android:contentDescription="@string/app_name" android:src="@drawable/ic_launcher" android:focusable="false"/> </LinearLayout> <TextView android:id="@+id/tvCity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="75dip" android:layout_toRightOf="@+id/list_image" android:paddingBottom="10dip" android:text="property" android:textColor="#040404" android:textSize="15sp" android:textStyle="bold" android:typeface="sans" /> <TextView android:id="@+id/tvprice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/imgProperty" android:layout_alignLeft="@+id/tvCity" android:text="Price" android:focusable="false"/> </RelativeLayout> 

    Codice dell'adattatore:

      public class CustomListAdapter extends BaseAdapter { ArrayList<Propety> PropertiesArray; private LayoutInflater Inflater; public CustomListAdapter(ArrayList<Propety> PropertiesArray) { this.PropertiesArray=PropertiesArray; } @Override public int getCount() { // TODO Auto-generated method stub return PropertiesArray.size(); } @Override public Object getItem(int position) { return PropertiesArray.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, final ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(parent.getContext()); convertView = inflater.inflate(R.layout.customlistview, parent, false); } final Propety ListArray = PropertiesArray.get(position); TextView tvPropertyName = (TextView) convertView.findViewById(R.id.tvCity); tvPropertyName.setText(ListArray.getName()); TextView tvPrice = (TextView) convertView.findViewById(R.id.tvprice); tvPrice.setText(ListArray.getPrice()); ImageView imgProperty = (ImageView) convertView.findViewById(R.id.list_image); imgProperty.setImageResource(R.drawable.ic_launcher); convertView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(parent.getContext(), "view clicked: " + ListArray.getName(), Toast.LENGTH_SHORT).show(); } }); return convertView; } } 

    ListView codice:

      ListView propertylistview = (ListView) findViewById(R.id.listview); CustomListAdapter customlistview=new CustomListAdapter(PropertiesArray); propertylistview.setAdapter(customlistview); 

    ListView XML:

      <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/customview" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="24dp" android:background="@drawable/list_selector" android:textAlignment="center" > 

    custom.xml:

     <?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="wrap_content" > <SurfaceView android:id="@+id/surface" android:layout_width="fill_parent" android:layout_height="match_parent" /> <TextView android:id="@+id/txtangle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginBottom="115dp" android:layout_marginLeft="95dp" android:text="" /> <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/customview" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="24dp" android:background="@drawable/list_selector" android:textAlignment="center" > </ListView> <view android:id="@+id/customview" android:layout_width="110dp" android:layout_height="110dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" class="com.example.samplebuapp.CustomCompass" /> <view android:id="@+id/view1" android:layout_width="110dp" android:layout_height="110dp" android:layout_above="@+id/listview" android:layout_alignParentRight="true" android:layout_marginRight="18dp" class="com.example.samplebuapp.CustomView" /> <LinearLayout android:id="@+id/rl1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/listview" android:orientation="vertical" android:focusable="false"> </LinearLayout> </RelativeLayout> 

    Anche lo scorrimento non funziona.

    Non riesco a capire perché questo accada? Sto perdendo qualcosa?

    Qualsiasi aiuto per risolvere questo problema è apprezzato.

  • WebViews in ViewPager non vengono caricati / resi finché non viene visualizzata la pagina
  • Come aprire un pdf memorizzato nella cartella res / raw o asset?
  • Attiva la modalità dell'aereo in Android
  • Scorrimento liscio per GridView
  • chiamando attività da attività esterne
  • grafica android 9-patch non scala in vista di image
  • 8 Solutions collect form web for “OnItemClickListener e OnClickListener non funzionano per ListView”

    Quanto segue farà il lavoro nel tuo caso.

     ListView propertylistview = (ListView) findViewById(R.id.listview); propertylistview.setOnItemClickListener( myListViewClicked ): OnItemClickListener myListViewClicked = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(YourActivity.this, "Clicked at positon = " + position, Toast.LENGTH_SHORT).show(); } }; 

    Non dimenticare di rimuovere quanto segue dal CustomAdapter

      convertView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(parent.getContext(), "view clicked: " + ListArray.getName(), Toast.LENGTH_SHORT).show(); } }); 

    Sono d'accordo con Ninjia ma dovresti aggiungere il codice al codice XML: devi definire in tutti gli oggetti figlio nell'elenco degli elementi (TextView, ImageView ecc.):

     android:clickable="false" android:focusable="false" android:focusableInTouchMode="false" 

    E per l'elemento radice RelativeLayout / LinearLayout e così, definire:

     android:clickable="false" android:descendantFocusability="blocksDescendants" android:focusable="false" android:focusableInTouchMode="false" 

    Se non defininetworking questi, "cattureranno" l'evento clic. E se si dispone di un adattatore ListView personalizzato, è sufficiente verificare che l'utente ignori:

     @Override public boolean isEnabled(int position) { return true; } 

    il codice semplice che ha risolto il mio problema e il metodo view.setOnClickListener di essere all'interno della mia scheda personalizzata

      view.setFocusable(false) 

    Controlla la tua row di riepilogo una volta:

    layout o qualsiasi vista non dovrebbe essere android: clickable = "true" e android: focusable = "true"

    se è lì è sufficiente cancellare e eseguire nuovamente l'applicazione.

    Se gli events di contatto vengono intercettati all'interno del layout della cella, nel layout per la tua cella personalizzata, impostare android:descendantFocusability="blocksDescendants" nel layout di livello superiore della tua cella. Per me, era troppo doloroso aggiungere gli attributi xml a each singola vista.

    Si noti che questo può anche essere impostato nel codice:

    cell.setDescendantFocusability(FOCUS_BLOCK_DESCENDANTS);

    Ho anche provato questo con un ListView all'interno di una cella, e ho dovuto ignorare onTouchEvent per farlo funzionare:

     public class NoTouchListView extends ListView { @Override public boolean onTouchEvent(MotionEvent ev) { return false; } } 

    Anche io stavo avendo lo stesso problema, ho la casella di controllo, ho fatto quanto segue per mascherare il lavoro itemClickListener,

    Aggiunto le seguenti properties; alla casella di controllo,

     android:focusable="false" android:focusableInTouchMode="false" android:clickable="false" 

    e ItemClickListner ha iniziato a lavorare.

    Per esempio dettagliato è ansible passare attraverso il link,

    http://knowledge-cess.com/android-itemclicklistner-with-checkbox-or-radiobutton/

    Spero che aiuta Cheers !!

    Per TextView dovresti anche utilizzare

     android:textIsSelectable="false" 

    https://developer.android.com/reference/android/widget/TextView.html#setTextIsSelectable

    Dovresti usare ListView.setOnItemClickListener() per get quello che vuoi.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.