Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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!

  • Android ImageView no coincide con_parent dentro de FrameLayout por debajo de GingerBread
  • ListView muestra brevemente el mensaje vacío antes de cargar los datos
  • OnCreateOptionsMenu antes de onCreate android
  • ¿Qué diferencia hay entre getSupportFragmentManager () y getChildFragmentManager ()?
  • Uso de la barra de acción contextual con fragmentos
  • Android ListFragment ver lista superposición en el cambio de orientación
  • Usando el paquete para pasar datos entre fragmento a otro fragmento ejemplo
  • Android: ListFragment: Cómo actualizar la lista
  • 4 Solutions collect form web for “ListFragment onItemClickListener no funciona”

    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()));

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.