我想在我的應用程序使用上下文操作欄(CAB),但不與舊版本的Android所以我使用本教程兼容:http://www.miximum.fr/tutos/849-porting-the-contextual-anction-mode-for-pre-honeycomb-android-apps 我的代碼是:如何使用上下文動作模式SherlockListFragment
public class SongsFragment extends SherlockListFragment implements
LoaderManager.LoaderCallbacks<Cursor>, OnLongClickListener{
...
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
activity = this.getActivity();
...
mMode = null;
mListView = getListView();
mListView.setItemsCanFocus(false);
mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
mListView.setOnLongClickListener(this);
}
@Override
public boolean onLongClick(View v) {
SparseBooleanArray checked = mListView.getCheckedItemPositions();
boolean hasCheckedElement = false;
for (int i = 0; i < checked.size() && !hasCheckedElement; i++) {
hasCheckedElement = checked.valueAt(i);
}
if (hasCheckedElement) {
if (mMode == null) {
mMode = activity.startActionMode(mActionModeCallback);
}
} else {
if (mMode != null) {
mMode.finish();
}
}
return false;
}
private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// Create the menu from the xml file
activity.getSupportMenuInflater().inflate(R.menu.cab_songs, menu);
return true;
}
...
我有錯誤:
- - 「activity.startActionMode(mActionModeCallback);」:在類型活性的方法startActionMode(ActionMode.Callback)不 適用於參數(ActionMode.Callback)
- -activity.getSupportMenuInflater()膨脹(R.menu.cab_songs,菜單);「:該方法getSupportMenuInflater()是未定義的 類型FragmentActivity
任何想法?還有另一種使用sherlock的CAB解決方案嗎?
這就是我做到這一點http://stackoverflow.com/questions/14737519/implementing-multi-selection-and-contextual-actionmode-in-actionbarsherlock/14737520#14737520 –