Это действительно странно. В первый раз, когда я запускаю приложение в eclipse, и я вызываю startActionMode, все работает нормально. Если я закрою приложение и снова открою его, startActionMode вернет значение null. Он всегда будет возвращать значение null, пока я не изменю что-то в приложении и не запустил его снова из eclipse. В документации говорится, что startActionMode возвращает null, если он был отменен, но он не объясняет, почему он отменен.startActionMode return null
Любые идеи? Кстати, i`m с помощью ActionBarSherlock
UPDATE: если мне выключить телефон или убить приложение и запустить приложение снова, это работает ... но потом делает то же самое, когда я закрыть его и открыть его снова.
вот мой код: класс ActionModeCallback:
class ActionModeCallback implements ActionMode.Callback{
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.contextactiondownloads, menu);
return true;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
// TODO Auto-generated method stub
return false;
}
};
В моей mainactivity:
public ActionMode startActionMode()
{
mActionMode = startActionMode(new ActionModeCallback());
return mActionMode;
}
В моем списке следует адаптер:
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
MainActivity activity = (MainActivity)rowView.getContext();
if (isChecked) {
if(actionmode == null){
actionmode = activity.startActionMode();
}else
{
actionmode.invalidate();
}
}
else {
activity.finishActionMode();
actionmode=null;
}
}
});
Где именно в вашей деятельности вы вызываете startActionMode()? – Christos
Я вызываю это из своего адаптера listview, смотрю на код выше: actionmode = activity.startActionMode(); –
Является ли это родной или совместимый ActionBar (это устройство ICS или выше?). Если это родной, эта строка из официальных документов может быть применима к вам - 'возвращает запущенный ContextMode или null, если он был отменен' – Delyan