2012-12-11 2 views
1

onItemCickListener를 사용할 수 없습니다. 내가하고있는 일은 의도를 사용하여 단편을 여는 것뿐입니다. 내가 여기에 아무것도없는 것을 알려주시겠습니까?setOnItemClickListener가 작동하지 않습니다.

public class MyListFragment extends ListFragment { 

    private ArrayList<String> myList = null; 
    private ArrayAdapter<String> myAdapter; 

     @Override 
     public void onActivityCreated(Bundle savedInstanceState){ 
      Log.d("Example:", "In Fragement Calss"); 
      super.onActivityCreated(savedInstanceState); 

      Resources myResources = getResources(); 
      myList = new ArrayList<String>(Arrays.asList(myResources.getStringArray(R.array.myExamArray))); 
      myAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,myList); 
      setListAdapter(myAdapter); 

      ListView lv = (ListView) getActivity().findViewById(R.id.listView); 
      lv.setOnItemClickListener(new OnItemClickListener(){ 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 

       Intent myIntent = new Intent(view.getContext(), DetailsFragment.class); 

       startActivity(myIntent); 
      } 

      }); 

     } 

} 
+0

사실 저는이 시스템에 익숙하지 않고 시스템이 어떻게 작동하는지 알지 못합니다. 나는 그 대답을 받아 들일 것이다. –

답변

0

이 조각에 대해 특정 XML을 부 풀리는 곳은 보이지 않지만 잘못된 ListView를 참조 할 수 있습니다.

에 관계없이 기존 onListItemClick 방법을 사용해야합니다

public class MyListFragment extends ListFragment { 

    private ArrayList<String> myList = null; 
    private ArrayAdapter<String> myAdapter; 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState){ 
     // Remove the OnItemClickListener, but keep everything else 
    } 

    @Override 
    public void onListItemClick (ListView l, View v, int position, long id) { 
     Intent myIntent = new Intent(this, DetailsFragment.class); 
     startActivity(myIntent); 
    } 
} 
+0

이 코드 줄 바꾸기 ListView lv = (ListView) getActivity(). findViewById (R.id.listView); with ListView lv = getListView(); 이 이벤트를 트리거했으며이 조각이 listfragment를 확장하면서 내 다른 활동을 호출 할 수있었습니다. –

+0

그럴 수도 있지만, 나에게'setOnItemClickListener()'를 사용하여 _second_ 리스너를 만드는 것보다'onListItemClick' 콜백을 사용하는 것이 더 합리적입니다. – Sam

1

참고하는 적어도 하나의 포커스 후손이 포함 된 항목의리스트 뷰 블록을 클릭 있지만 를 호출 컨텐츠 포커스 도달하지 않습니다 setItemsCanFocus (true). 한 가지 해결 방법은 하위 항목의 포커스 가능성을 비활성화하여 목록 항목을 정의하는 레이아웃에

android:descendantFocusability="blocksDescendants" 

을 사용하는 것입니다. (처음에 http://cyrilmottier.com/2011/11/23/listview-tips-tricks-4-add-several-clickable-areas/에서이 사실을 알았지 만, 다른 몇 가지 게시물에서도이 점을 지적했습니다.) 레이아웃에 버튼이 있습니까? 그렇다면이 경우에 빠지게됩니다.

관련 문제