ListFragment onItemClickListener no funciona

Estoy usando el diseño con pestañas (con swipe). Aquí tengo 3 pestañas con controlado por un SectionsPagerAdapter. Cada ficha es un ListFragment.

Ahora quiero obtener un evento disparado cuando se hace clic en uno de los elementos de la lista. Me gustaría un oyente para cada ficha.

Aquí está el código ahora (que no funciona, el evento no se dispara).

public class NyhederFragment extends ListFragment { public static final String ARG_SECTION_NUMBER = "section_number"; private static final String TAG="NyhederFragment"; private List<Item> newsItems; private ArrayList newsHeadlines; private ArrayAdapter adapter; private BroadcastReceiver updateReciever; public NyhederFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ListView newsList = new ListView(getActivity()); newsList.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); newsList.setId(R.id.list); DatabaseHelper dbConn = new DatabaseHelper(getActivity()); newsItems = dbConn.getAllItemsFromNews(); newsHeadlines = new ArrayList(); for(Item i : newsItems){ newsHeadlines.add(i.getTitle()); } adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, newsHeadlines); setListAdapter(adapter); newsList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.i("debug", "single click"); } }); dbConn.close(); getActivity().registerReceiver(updateReciever, new IntentFilter("ArticlesUpdated")); return newsList; } } 

¿Qué es, estoy haciendo mal?

¡Muchas gracias por adelantado!

Si está utilizando ListFragment entonces simplemente puede usar su método override onListItemClick()

 @Override public void onListItemClick(ListView l, View v, int position, long id) { // TODO Auto-generated method stub super.onListItemClick(l, v, position, id); } 

Se debe al elemento de lista personalizada. El enfoque predeterminado es con el elemento de lista personalizado (botón / vista de texto). Causa este problema.

Agregue android:descendantFocusability="blocksDescendants" en el diseño raíz del elemento de lista. Espero que esto ayude a alguien.

Cambiar setListAdapter(adapter); A newsList.setAdapter(adapter);

Si desea crear o volver a utilizar o un manejador existente que implementa AdapterView.OnItemClickListener , en lugar de implementar onListItemClick() dentro de ListFragment , puede hacerlo obteniendo una referencia a ListView del ListFragment y estableciendo su oyente. En tu ListFragment.onResume() podrías hacer:

 @Override public void onResume() { super.onResume(); ListView listView = getListView(); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.d("TAG", "Stop touching me"); } }); } 

En mi caso, puedo usar el mismo listener de una Activity con ListView , ListActivity o ListFragment , por ejemplo

listView.setOnItemClickListener(new MyListViewOnClickListener(getActivity()));

  • ListFragment no vuelve a mostrar datos al llamar desde FragmentStatePagerAdapter
  • No se ha encontrado ninguna vista para id en Android FragmentActivity con ListFragment
  • Fragmento ya activo - Al intentar establecerArgumentos
  • El color de fondo de la lista se vuelve blanco al desplazarse cuando se utiliza android.support.v4.app.ListFragment;
  • Añadir un encabezado a fragmentlist android
  • NotifyDataSetChanged en el adaptador Curser no funciona con listfragment
  • Pie de página fijo y siempre visible debajo de ListFragment
  • El adaptador personalizado getview no se llama
  • Configuración del color de fondo de los elementos ListView en el botón
  • Uso de la barra de acción contextual con fragmentos
  • ListFragment falta el divisor
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.