Я работаю над андроидным приложением с контекстной панелью действий, но onCreateActionMode не вызывается, а также не выбран элемент listview, а также не работает прослушиватель itemcheckstatechanged.ActionMode OnCreateActionMode не называется
Ниже, как я создаю режима действия:
AdapterView.OnItemLongClickListener mOnItemLongClickListener = new AdapterView.OnItemLongClickListener()
{
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id)
{
if (mActionMode != null)
{
return false;
}
Toast.makeText(getActivity(), "Long Click", Toast.LENGTH_LONG).show();
lstRooms.setOnItemClickListener(null);
mActionMode = getActivity().startActionMode(mActionModeCallback);
view.setSelected(true);
return true;
}
};
Ниже, как я установил OnLongItemClickListener
lstRooms.setOnItemLongClickListener(mOnItemLongClickListener);
Ниже мой ActionMode Callback.
private ActionMode.Callback mActionModeCallback = new ActionMode.Callback()
{
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu)
{
lstRooms.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
lstRooms.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener()
{
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked)
{
Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_LONG).show();
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu)
{
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.room_context_menu, menu);
mode.setTitle("HELLO WORLD");
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu)
{
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item)
{
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode)
{
}
});
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu)
{
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item)
{
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode)
{
mActionModeCallback = null;
}
};
Ни один такой метод, как onCreateActionMode не называется так моя строка заголовка не установлена, хотя панель действий делает почернеет, по какой-то причине, я знаю, что текст должен быть белым, как если бы я actionMode.setTitle ("Hello") после того, как я создаю объект, который он работает, его просто функции обратного вызова не работают.
Как уже упоминалось другая проблема заключается в том, что вид элемента списка не показывает, что его выбирают, когда я view.setSelected(true)
Я также попытался lstRoom.setItemChecked(position, true)
Спасибо за любую помощь вы можете предоставить.
Где вы установили слушателя в представление? Я только вижу его объявление ... – Rucsi
Какой слушатель вы тоже имеете в виду, я думаю, что я включил все из инструкций из того, что я могу сказать, я запускаю режим действия из представления списка по длинному клику – Boardy
Что-то вроде 'adapterView .setOnItemLongClickListener (mOnItemLongClickListener) '. Появляется ли ваш тост 'Long Click'? – Rucsi