2012-02-28 3 views
3

У меня есть ListFragment, и я хочу использовать событие onitemclick. Но у меня много проблем. можешь мне помочь ? Я ставлю событие onstart, это правильно или правильно?Android listfragment onItemClick не работает?

Заранее спасибо. ..

public class MesajFragment extends android.support.v4.app.ListFragment 
    ... 
    @Override 
public void onStart() { 
    // TODO Auto-generated method stub 
    super.onStart(); 

    getListView().setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      // TODO Auto-generated method stub 
      Toast.makeText(getActivity(), arg2 + " okwww ", 
        Toast.LENGTH_LONG); 

     } 
    }); 
} 
+0

Я думаю, что это может быть проблема где-то в вашем коде. Я ударил точку останова, установленную в методе обработчика здесь. Http://pastebin.com/yb12XaTg. Я подозреваю, что это больше связано с тем, как Android обрабатывает потоки. – Jackie

ответ

9

Вы не вызываете .show() на тост-сообщение. Это должно выглядеть так:

Toast.makeText(getActivity(), arg2 + " okwww ", 
        Toast.LENGTH_LONG).show(); 

Просмотреть .show() в конце? Вероятно, ваш onClick работает. Кажется, что это не так, потому что ваше сообщение Toast не отображается

+0

На самом деле вы правы, но я отлаживаю и у меня есть точки останова, которые я поставил, и это то же самое. так что это не решение. – Yaya

+0

Я не уверен, что понимаю ваш комментарий. Так что тост показывается? Что еще происходит? Чего вы ожидаете? – dymmeh

+0

извините за ошибку. я поставил точку останова, и он все еще не останавливается на точке останова. – Yaya

5

В вашем примере отображается ListView и устанавливается его прослушиватель кликов. При расширении ListFragment, необходимо переопределить onListItemClick вместо:

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Handle item click 
}