我正在使用上下文操作欄的android應用程序,但onCreateActionMode沒有被調用,也沒有設置listview項目被選中,也沒有itemcheckstatechanged偵聽器工作。ActionMode OnCreateActionMode not called
下面是怎麼了創建操作模式:
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回調。
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)'。你的Toast'Long Click'出現了嗎? – Rucsi