2013-12-21 2 views
0

내 응용 프로그램에서 문자열과 같은 정적 데이터를 표시하는 간단한 ListFragment있어. 단일 선택으로 목록 항목을 클릭 할 수있게해야합니다. 여기까지 내가 지금까지 시도한 것입니다. 목록 항목을 볼 수는 있지만 목록 항목을 클릭하면 어떤 로그도 가져올 수 없습니다. 해당 코드의 문제점은 무엇입니까? http://developer.android.com/reference/android/app/ListFragment.html#onListItemClick(android.widget.ListView, android.view.View에서, INT, 긴) :목록보기에서 ListFragment 항목을 클릭

public class SettingsTab extends ListFragment implements OnItemClickListener{ 
String[] numbers={"one","two","three","four"}; 
ListView list ; 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Log.d("Settings tab", "Fragment Created (onCreate)"); 
    } 
@Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     Log.d("Settings tab", "Fragment Created (onActivityCreate)"); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.settingsfragment, container, false); 
     list = (ListView)v.findViewById(android.R.id.list); 
     list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
     list.setAdapter(new ArrayAdapter<String>(getActivity(), R.layout.listitemlayout, 
       R.id.listitemUniName, names)); 
     list.setOnItemClickListener(this); 
     Log.d("Settings tab", "Fragment Created (onCreateView)"); 
     return v; 
    } 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     Toast.makeText(getActivity().getBaseContext(), "Item clicked: " + arg2, Toast.LENGTH_LONG).show(); 
     Log.d("settings", "click worked"); 
    } 

답변

1

ListFragment은 이미이 OnItemClickListener 설정 대신이 메소드를 오버라이드 (override)하지 않는 청취자입니다.

0

@ Jukka Raanamo가 맞습니다. 이것이 도움이되었습니다. OnItemClickListener 및 방법 onItemClick()을 제거 할 수 있습니다. 그런 다음 onListItemClick()을 무시하십시오. 예를 들어

:

@Override 
    public void onListItemClick(ListView l, View v, int position, long id) 
    { 
     super.onListItemClick(l, v, position, id); 
     // Do whatever you need to do here. 
     Toast.makeText(getActivity().getBaseContext(), "Item clicked: " + arg2, Toast.LENGTH_LONG).show(); 
     Log.d("settings", "click worked"); 
    } 

감사 @Jukka Raanamo