No se puede implantar OnItemClickListener en android-swipelistview

Yo uso android-swipelistview en https://github.com/47deg/android-swipelistview pero no puedo implementar OnItemClickListener. No funciona cuando escribo:

swipeListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { startActivity(new Intent(getActivity().getApplicationContext(),ComposeActivity.class)); } }); 

4 Solutions collect form web for “No se puede implantar OnItemClickListener en android-swipelistview”

prueba esto:

 swipeListView.setSwipeListViewListener(new BaseSwipeListViewListener() { @Override public void onClickFrontView(int position) { super.onClickFrontView(position); your code... } } 

SwipeListView tiene dos vistas como FrontView y BackView.It debe ser diseñado en xml como sigue

package_raw.xml:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <RelativeLayout android:id="@+id/back" <=== style="@style/ListBackContent" android:layout_width="wrap_content" android:layout_height="110dp" android:tag="back" > <LinearLayout android:id="@+id/backshowportion" style="@style/ListBackContent" android:layout_width="250dp" android:layout_height="110dp" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:background="@drawable/bg" android:gravity="right|center" > <TextView ..... /> <TextView ..... /> <TextView ...../> </LinearLayout> </RelativeLayout> <RelativeLayout android:id="@+id/front" <=== style="@style/ListFrontContent" android:layout_width="match_parent" android:layout_height="110dp" android:orientation="vertical" android:tag="front" > <TextView ..... /> <TextView ..... /> <TextView ..... /> <TextView ..... /> 

y luego especifique dónde debe hacer clic exactamente en "FrontView" o "BackView" como haciendo en el siguiente segmento de código:

 protected void onCreate(Bundle savedInstanceState) { swipeListView=(SwipeListView)findViewById(R.id.lstRequests); if (Build.VERSION.SDK_INT >= 11) { swipeListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { swipeListView.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() { @Override public void onItemCheckedStateChanged(ActionMode mode, int position,long id, boolean checked) { mode.setTitle("Selected (" + swipeListView.getCountSelected() + ")"); } @Override public void onDestroyActionMode(ActionMode mode) { swipeListView.unselectedChoiceStates(); } @Override public boolean onActionItemClicked(ActionMode mode,MenuItem item) { return false; } @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { return false; } @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return false; } }); } } public void onStart() { super.onStart(); listner(); } private void listner() { swipeListView.setSwipeListViewListener(new BaseSwipeListViewListener() { @Override public void onStartOpen(int position, int action, boolean right) { Log.d("swipe", String.format("onStartOpen %d - action %d", position, action)); } @Override public void onStartClose(int position, boolean right) { Log.d("swipe", String.format("onStartClose %d", position)); } @Override public void onOpened(int position, boolean toRight) { } @Override public void onMove(int position, float x) { } @Override public void onListChanged() { } @Override public void onLastListItem() { } @Override public void onFirstListItem() { } @Override public void onDismiss(int[] reverseSortedPositions) { } @Override public void onClosed(int position, boolean fromRight) { } @Override public void onClickFrontView(int position) //<===================FrontView { Log.d("swipe", String.format("onClickFrontView %d", position)); swipeListView.openAnimate(position); } @Override public void onClickBackView(int position) //<===================BackView { Log.d("swipe", String.format("onClickBackView %d", position)); swipeListView.closeAnimate(position); } @Override public void onChoiceStarted() { } @Override public void onChoiceEnded() { } @Override public void onChoiceChanged(int arg0, boolean arg1) { } @Override public int onChangeSwipeMode(int arg0) { return 0; } }); 

Espero poder ayudarte.

cuando se utiliza onClickFrontView con setSwipeListViewListener el setSwipeListViewListener se deshabilita.

He encontrado esta solución útil:

Envuelva su vista frontal con otro diseño witout tag = front ni id = front:

 <LinearLayout android:id="@+id/front" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:tag="front" > <LinearLayout android:id="@+id/frontView" style="@style/MyListFrontContent" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:padding="15dp" > ...your front view elements </LinearLayout> </LinearLayout> 

entonces en su adaptador setOnClickListener en ese diseño

 holder.frontView= (LinearLayout)convertView.findViewById(R.id.frontView); holder.frontView.setOnClickListener(this); 

Puede intentar implementarlo con OnTouchListener y escribir su propio código para identificar swipes versus single-clicks.

  • Implementación de 47degree android-swipelistview para desplazar android ListViewItem
  • Android listview, pase a la acción
  • Android ListView Deslizar hacia la derecha y hacia la izquierda para aceptar y rechazar
  • Desplazamiento por Android en la lista
  • Vista de desplazamiento de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.