If you think the Android project android_app listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
package it.gmariotti.cardslib.library.internal;
//www.java2s.comimport android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.view.ActionMode;
import android.view.Menu;
import android.view.View;
import android.widget.AbsListView;
import java.util.ArrayList;
import it.gmariotti.cardslib.library.internal.Card;
import it.gmariotti.cardslib.library.internal.CardCursorAdapter;
import it.gmariotti.cardslib.library.internal.multichoice.DefaultOptionMultiChoice;
import it.gmariotti.cardslib.library.internal.multichoice.MultiChoiceAdapter;
import it.gmariotti.cardslib.library.internal.multichoice.MultiChoiceAdapterHelperBase;
import it.gmariotti.cardslib.library.internal.multichoice.OptionMultiChoice;
import it.gmariotti.cardslib.library.view.CardListView;
import it.gmariotti.cardslib.library.view.CardView;
publicabstractclass CardCursorMultiChoiceAdapter extends CardCursorAdapter implements MultiChoiceAdapter, AbsListView.MultiChoiceModeListener {
/**
* Helper
*/private MultiChoiceAdapterHelperBase mHelper = new MultiChoiceAdapterHelperBase(this);
/**
* Option for multichoice
*/protected OptionMultiChoice mOptions;
// -------------------------------------------------------------
// Constructors
// -------------------------------------------------------------
/**
* Constructor
*
* @param context The current context.
*/public CardCursorMultiChoiceAdapter(Context context) {
this(context, new DefaultOptionMultiChoice());
}
/**
* Constructor
*
* @param context The current context.
*/public CardCursorMultiChoiceAdapter(Context context, OptionMultiChoice options) {
super(context, null, true);
this.mOptions = options;
mHelper.setMultiChoiceModeListener(this);
}
// -------------------------------------------------------------
// Adapter
// -------------------------------------------------------------
@Override
publicvoid setCardListView(CardListView cardListView) {
super.setCardListView(cardListView);
mHelper.setAdapterView(cardListView);
}
/**
* Used to setup some element events for multichoice
*
* @param view
* @param mCard
* @param mCardView
* @param position
*/
@Override
protectedvoid setupMultichoice(View view, Card mCard, CardView mCardView, long position) {
super.setupMultichoice(view, mCard, mCardView, position);
mHelper.setupMultichoice(view, mCard, mCardView, position);
}
@Override
public Card getItem(int position) {
Card card = super.getItem(position);
card.mMultiChoiceEnabled = true;
return card;
}
// -------------------------------------------------------------
// ActionMode
// -------------------------------------------------------------
publicboolean startActionMode(Activity activity) {
return mHelper.startActionMode(activity);
}
/**
* Called when action mode is first created. The menu supplied will be used to
* generate action buttons for the action mode.
*
* @param mode ActionMode being created
* @param menu Menu used to populate action buttons
* @return true if the action mode should be created, false if entering this
* mode should be aborted.
*/
@Override
publicboolean onCreateActionMode(ActionMode mode, Menu menu) {
return mHelper.onCreateActionMode(mode,menu);
}
/**
* Called when an action mode is about to be exited and destroyed.
*
* @param mode The current ActionMode being destroyed
*/
@Override
publicvoid onDestroyActionMode(ActionMode mode) {
mHelper.onDestroyActionMode(mode);
}
/**
* Called when an item is checked or unchecked during selection mode.
*
* @param mode The {@link ActionMode} providing the selection mode
* @param position Adapter position of the item that was checked or unchecked
* @param id Adapter ID of the item that was checked or unchecked
* @param checked <code>true</code> if the item is now checked, <code>false</code>
* if the item is now unchecked.
*/
@Override
publicvoid onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
mHelper.onItemCheckedStateChanged(mode,position,id,checked);
}
/**
* Indicate if action mode is started
*
* @return
*/
@Override
publicboolean isActionModeStarted() {
return mHelper.isActionModeStarted();
}
// -------------------------------------------------------------
// MultiChoice
// -------------------------------------------------------------
/**
* Returns the selected cards
* @return
*/protected ArrayList<Card> getSelectedCards() {
return mHelper.getSelectedCards();
}
@Override
public OptionMultiChoice getOptionMultiChoice() {
return mOptions;
}
}