Friday, July 23, 2010

创建一个上下文菜单

创建一个上下文菜单的代码如下,注意要先定义EDIT_ID与DELETE_ID的值.
但完成代码后,在界面中长按,并没有弹出相应的菜单,不知是为什么.
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(0, EDIT_ID, 0,"Edit");
menu.add(0, DELETE_ID, 0,"Delete");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo)
item.getMenuInfo();
switch (item.getItemId()) {
case EDIT_ID:
// editNote(info.id);
return true;
case DELETE_ID:
// deleteNote(info.id);
return true;
default:
return super.onContextItemSelected(item);
}
}
答案是,在使用content菜单时,要先进行注册。以表示该上下文菜单是对应于哪一个控件。函数是:
registerForContextMenu。
这个函数一般被加在OnCreate中,示例如下:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tView=(TextView)findViewById(R.id.hello);
registerForContextMenu(tView);
}
这是给系统创建的默认页面的默认元素(是一个TextView)加一个上下文菜单的例子。加入这些代码后,就可在程序的主页面中测试到上下文菜单了。

No comments:

Post a Comment