ユーザーがスピナーのアイテムを短くクリックした場合、コンテキストメニューを表示しません:
uSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id)
{
Toast.makeText(getBaseContext(), "Position = " + position, Toast.LENGTH_SHORT).show();
pos = position;
registerForContextMenu(view);
openContextMenu(view);
unregisterForContextMenu(view);
}
});
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo info)
{
if(pos != -1)
{
menu.setHeaderTitle("Admin menu");
menu.add("Kick");
}
}
@Override
public boolean onContextItemSelected(MenuItem item)
{
if(item.getTitle()=="Kick")
{
Toast.makeText(getBaseContext(), "Kick: " + usrStack.get(pos), Toast.LENGTH_SHORT).show();
}
return super.onContextItemSelected(item);
}
すべて問題ありませんが、アプリを起動すると、最初の要素にこのコンテキスト メニューが表示されます。(覚えていると思いますが、匿名のように、最初の要素はスピナーに表示されます。この最初の要素を選択して、コンテキスト メニューを呼び出すと思います)