2010-11-02 6 views
0

J'essaie d'implémenter un élément de menu Select All pour ListView dans ListViewActivity. Les parties pertinentes de mon ListViewActivity:Outil Sélectionner tout avec plusieurs listes ListView dans Android

public class MyListViewActivity extends ListActivity 
{ 


    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     ArrayList<String> data = createDataList();  
     setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, data)); 
     getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     getListView().setItemsCanFocus(false); 
    } 


    @Override 
    public boolean onMenuItemSelected(int featureId, MenuItem item) 
    { 
     if (item.getItemId() == R.id.delete) 
     { 
     //TODO: delete the checked items 
     return true; 
     } 
     if (item.getItemId() == R.id.select_all) 
     { 
     for (int i = 0; i < getListView().getCount(); i++) 
      getListView().setSelection(i); 
     return true; 
     } 
     return super.onMenuItemSelected(featureId, item); 
    } 

J'ai parcouru autour de stackoverflow.com et le google; ce qui précède est quelque chose qui devrait fonctionner. Mais ce n'est pas le cas. setSelection(i) semble être la méthode que je veux appeler sur ListView, mais cela ne fonctionne pas comme annoncé.

Qu'est-ce que je fais mal? Est-ce encore possible sur Android en code?

Répondre

4

essayez celui-ci.

ListView listview = getListView(); 
if (item.getItemId() == R.id.select_all) 
     { 
     for (int i = 0; i < listview.getCount(); i++) 
      listview.setItemChecked(i, true); 
     } 
Questions connexes