ListView单击和长按弹出上下文菜单(ContextMenu)
1.长按弹出上下文菜单
所有的View 都可以监听setOnCreateContextMenuLi
stener事件,长按都会弹出上下文菜单
View.setOnCreateContextMenuLi
stener(OnCreateContextMenuListe
ner l)
或者在activity里面注册view的上下文菜单
registerForContextMenu(View view)
重写
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item)
{
{
}
}
处理对应的事件。
-----------------------------------------------------------
长按ListView中的一项item弹出上下文菜单
只需要监听ListView的 setOnCreateContextMenuLi
stener事件即可
然后重写对应的方法,同上面的一样。
在onContextItemSelected中获取 ListView中item对象
@Override
public boolean onContextItemSelected(MenuItem item)
{
}
-----------------------------------------------------------
2. 单击View弹出上下文菜单
View.setOnCreateContextMenuLi
stener(OnCreateContextMenuListe
ner l)
View.setOnClickListener(OnClickListener l)
需要同时监听view的单击事件和上下文菜单事件
然后在View的onClick调用 View.showContextMenu()方法。
如下
View.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
View.showContextMenu();
}
);
然后重新对应的方法,同上一个一样。
这样,不论单击或者长按,都可以弹出上下文菜单。
只要能监听到view对应的事件,应该都可以弹出上下文菜单,不过没有经过测试。