2013-12-21 118 views
0

我在我的应用程序中获得了一个简单的ListFragment,以显示类似Strings的静态数据。我需要使单选项列表项可点击。这是我到目前为止所尝试的。我可以看到列表项目,但我无法从单击列表项中获取任何日志。 该代码有什么问题?在ListFragment中的ListView点击项目

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

回答

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