2013-12-21 5 views
0

У меня есть простой ListFragment в моем приложении, чтобы показать статические данные, такие как Strings. Мне нужно сделать элементы списка доступными с помощью Single Choice. Вот что я пробовал до сих пор. Я могу видеть элементы списка, но я не могу получить доступ к журналам из списка элементов списка. Что не так с этим кодом?ListView в ListFragment click to items

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 is right, это помогло мне, вы можете избавиться от 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