Список фрагментов для прослушивателя кликов

Я пытаюсь сделать список в Android-списке ListFragment с помощью OnItemClickListener, но я не могу, я нажимаю n элемент списка, и ничего не происходит. Я новичок с фрагментами. Вот мой код. Спасибо!

public class MyFragment extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
 Bundle savedInstanceState) {
 View v= inflater.inflate(R.layout.hello, container, false);
 ListView lv =(ListView) v.findViewById(android.R.id.list);
 // Listview on item click listener
 lv.setOnItemClickListener(new OnItemClickListener() {
 public void onItemClick(AdapterView<!--?--> parent, View v,
 int position, long id) {
 // getting values from selected ListItem
 String titulo = ((TextView) v.findViewById(R.id.title))
 .getText().toString();
 String contenido = ((TextView) v.findViewById(R.id.content))
 .getText().toString();
 String fecha = ((TextView) v.findViewById(R.id.date))
 .getText().toString();
 // Starting new detail
 Intent in = new Intent(getActivity().getApplicationContext(),
 NoticiasFragment.class);
 in.putExtra("title", titulo);
 in.putExtra("content", contenido);
 in.putExtra("date", fecha);
 startActivity(in);
 }
 return v;
}
2 ответа

ListFragment имеет встроенную функцию onListItemClick для переопределения.

Вы должны сделать это следующим образом:

public class MyFragment extends ListFragment {
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
 Bundle savedInstanceState) {
 View v= inflater.inflate(R.layout.hello, container, false);
 return v;
 }
 @Override
 public void onListItemClick(ListView l, View v, int position, long id) {
 //Do your stuff..
 }
}


Переместить код:

lv.setOnItemClickListener(new OnItemClickListener() {
 public void onItemClick(AdapterView<!--?--> parent, View v,
 int position, long id) {
 // getting values from selected ListItem
 String titulo = ((TextView) v.findViewById(R.id.title))
 .getText().toString();
 String contenido = ((TextView) v.findViewById(R.id.content))
 .getText().toString();
 String fecha = ((TextView) v.findViewById(R.id.date))
 .getText().toString();
 // Starting new detail
 Intent in = new Intent(getActivity().getApplicationContext(),
 NoticiasFragment.class);
 in.putExtra("title", titulo);
 in.putExtra("content", contenido);
 in.putExtra("date", fecha);
 startActivity(in);
 }

в метод фрагмента onActivityCreated().

licensed under cc by-sa 3.0 with attribution.