2016-06-16 10 views
0

私は、ListChoiceをMultiChoiceListViewで使用しています。私は選択肢の数を3に制限したいと思います。これを行うには、私のonViewCreatedにMultiChoiceModeListenerを実装します。何らかの理由でリスナーが動作していませんか?ListFragmentのMultiChoiceModeListenerが機能していませんか?代わりにonListItemClickを使用してください

ただし、 onListItemClickは機能しますか?

(別の方法として:onListItemClick中3の限度で確認&未チェックを追跡する方法は何ですか?)

public class PinnedSectionListFrag extends ListFragment {... 
... 

    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 

     setListAdapter(new SimpleAdapter(getActivity(), android.R.layout.simple_list_item_multiple_choice, android.R.id.text1)); 

     listView = getListView(); 

//  listView.setItemsCanFocus(false); 
     listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

     listView.setMultiChoiceModeListener(new MultiChoiceModeListener() { 
      @Override 
      public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { 
       Log.e("PinnedSectionsList...","......"+position); 
      } 

      @Override 
      public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
       return false; 
      } 

      @Override 
      public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 
       return false; 
      } 

      @Override 
      public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 

       Log.e("PinnedSectionsList...","...item........"+item); 

      } 

      @Override 
      public void onDestroyActionMode(ActionMode mode) { 

      } 
     }); 
    } 

...任意の助け

@Override // Working.. 
public void onListItemClick(ListView l, View v, int position, final long id) { 
    Item item = (Item) getListView().getAdapter().getItem(position); 
    if (item != null) { 
     Toast.makeText(getActivity(), "Item " + position + ": " + item.text, Toast.LENGTH_SHORT).show(); 
    } else { 
     Toast.makeText(getActivity(), "Item " + position, Toast.LENGTH_SHORT).show(); 
     } 
}... 

-Thanksを/手がかり

答えて

0

これは誰かを助けるかもしれません...私は代わりに行って、自分自身を追跡するonListItemClickを使用しました。

@Override 
public void onListItemClick(ListView l, View v, int position, final long id) { 
     if (selectedItems.size() < 2){ 
      selectedItems.add(item.text); 
      if (selectedItems.size() == 1) { 
       MyAppClass.getInstance().saveSharedSetting(getActivity(), "Titles", selectedItems.get(0)); 
      }else { 

MyAppClass.getInstance().saveSharedSetting(getActivity(), "Titles", TextUtils.join(", ", selectedItems)); 
      } 

      Log.e("onListItemClick()","Read Titles..."+MyAppClass.getInstance().readSharedSetting(getActivity(), "Titles","TitlesRead")); 
// 
     }else { 

       for (int i =0; i < selectedItems.size(); i++){ 
        if (selectedItems.get(i) == item.text){ 
         selectedItems.remove(i); 
        } 
      } 

      //    sparseBooleanArray.put(position, false);//.get(position) = false; 
      getListView().setItemChecked(position, false); 
      Toast.makeText(getActivity(), "Max 2 Items Reached ! - ", Toast.LENGTH_SHORT).show(); 
     } 
関連する問題