2012-02-19 6 views
1

У меня есть ListFragment, который содержит список, однако onListItemClick никогда не вызывается. Я не использую getListView(), который, как я подозреваю, является проблемой. Я потянув мой список вид с XML как таковой:onListItemClick не вызывается в ListFragment

list = (ListView) getActivity().findViewById(android.R.id.list); 

А затем установить адаптер вроде этого:

list.setAdapter(new CustomAdapter(getActivity(), R.layout.title, mCursor, new String[]{"title"}, new int[]{R.id.my_title})); 

Поскольку мне нужно, чтобы установить адаптер в списке, я не использую setListAdapter() или. Невозможно вывести список из xml и использовать onListItemClick? Я хотел бы сохранить свой список в xml, поэтому мне не нужно программно устанавливать все свойства.

Если это невозможно, как я могу выбрать элементы в моем списке?

Thanks

+1

Непонятно, почему вы не используете стандартный шаблон. вызовите setListAdapter в ListFragment, передав ему свой пользовательский адаптер. Вы можете сделать это и по-прежнему определять список в макете, раздувая его в newView. Возможно, вы обошли какой-то код, не вызвав setListAdapter. –

ответ

0

OK. Попробуйте этот ответ. Сохраните файл макета так, как есть. Override следующего метода в классе FragmentList:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) 
{ 
    return inflater.inflate(R.layout.your_fragment_layout, container, false); 
} 

Убедитесь, что ваш макет определить ListView с правым идентификатором, следующим образом:

<ListView android:id="@id/android:list" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:drawSelectorOnTop="false"/> 

Тогда просто позвоните FragmentList :: setListAdapter:

setListAdapter(new CustomAdapter(getActivity(), R.layout.title, mCursor, new String[]{"title"}, new int[]{R.id.my_title})); 

Должно работать, ticky-boo.

+1

Это не похоже, что я могу переопределить newView в ListFragment. Я могу изнутри моего CustomAdapter, так как он расширяет SimpleCursorAdapter, однако я не считаю, что это подходящее место для него. – Nick

+0

Я обновил ответ. Я схватил код из-за неправильного места. Этот подход тот же, но переопределяет onCreateView. –

+0

Спасибо. Не имея onCreateView, то, что вызывало список из xml, не отображалось. – Nick

Смежные вопросы