2012-02-19 6 views
1

목록이 포함 된 ListFragment가 있지만 onListItemClick은 호출되지 않습니다. 나는 문제가 있다고 의심되는 getListView()를 사용하지 않고있다.onListItemClick이 ListFragment에서 호출되지 않았습니다.

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

을 그리고 다음과 같이 어댑터 설정 : 나는 등의 XML에서 내 목록보기를 당겨하고 나는 목록에 어댑터를 설정해야하기 때문에, 내가 사용하지 않는

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

을 setListAdapter()도 마찬가지입니다. XML에서 목록을 가져오고 onListItemClick을 사용할 수 있습니까? 프로그래밍 방식으로 모든 속성을 설정할 필요가 없도록 XML에서 내 목록보기를 유지하고 싶습니다.

이것이 불가능할 경우 어떻게하면 내 목록에서 항목을 선택할 수 있습니까?

감사합니다.

+1

표준 패턴을 사용하지 않는 이유는 분명하지 않습니다. ListFragment에 setListAdapter를 호출하여 Customadapter를 전달하십시오. 당신은 그것을 할 수 있고 여전히 newView에서 그것을 팽창시킴으로써 레이아웃에서리스트를 정의 할 수 있습니다. 아마도 setListAdapter를 호출하지 않아서 일부 코드를 건너 뛸 것입니다. –

답변

0

확인. 이 대답을 시도하십시오. 레이아웃 파일을 그대로 유지하십시오. 당신의 FragmentList 클래스에 다음 메서드를 재정의 다음과 같이

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

, 당신의 레이아웃이 바로 ID로 목록보기 정의 있는지 확인하십시오

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

일해야합니다. 티키 부.

+1

ListFragment 내에서 newView를 재정의 할 수있는 것처럼 보이지 않습니다. SimpleCursorAdapter를 확장하기 때문에 CustomAdapter 내에서 할 수 있습니다. 그러나 적절한 위치라고는 생각하지 않습니다. – Nick

+0

답변을 업데이트했습니다. 나는 잘못된 곳에서 코드를 받았다. 접근 방식은 동일하지만 onCreateView를 재정의합니다. –

+0

감사합니다. onCreateView를 사용하지 않으면 xml의 목록이 표시되지 않습니다. – Nick

관련 문제