这段代码在android模拟器中无法显示出menu,没有报错也运行了但就是不显示menu?

yu8866213 2011-07-04 09:24:35
public class MenuActivity extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 定义设置上下文菜单的载体并注册
TextView tv = new TextView(this);
tv.setText("上下文菜单的载体");
registerForContextMenu(tv);
setContentView(tv);
//setContentView(R.layout.main);
}
//创建OptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
this.populateMenu(menu);
return true;
}
//单击事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case Menu.FIRST + 1:
Toast.makeText(this, "删除菜单被点击了", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 2:
Toast.makeText(this, "保存菜单被点击了", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 3:
Toast.makeText(this, "帮助菜单被点击了", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 4:
Toast.makeText(this, "添加菜单被点击了", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 5:
Toast.makeText(this, "详细菜单被点击了", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 6:
Toast.makeText(this, "发送菜单被点击了", Toast.LENGTH_LONG).show();
break; }
return false;
}

private void populateMenu(Menu menu) {
menu.add(Menu.NONE, Menu.FIRST + 1, 5, "删除").setIcon(android.R.drawable.ic_menu_delete);
menu.add(Menu.NONE, Menu.FIRST + 2, 2, "保存").setIcon(android.R.drawable.ic_menu_edit);
menu.add(Menu.NONE, Menu.FIRST + 3, 6, "帮助").setIcon(android.R.drawable.ic_menu_help);
menu.add(Menu.NONE, Menu.FIRST + 4, 1, "添加").setIcon(android.R.drawable.ic_menu_add);
menu.add(Menu.NONE, Menu.FIRST + 5, 4, "详细").setIcon(android.R.drawable.ic_menu_info_details);
menu.add(Menu.NONE, Menu.FIRST + 6, 3, "发送").setIcon(android.R.drawable.ic_menu_send);

}}
...全文
345 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fontlose 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 yu8866213 的回复:]
public class MenuActivity extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceSta……
[/Quote]
registerForContextMenu(tv);????
你是要ContextMenu吗?



activity内重写onContextItemSelected
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub


switch (item.getItemId()) {
case Menu.FIRST + 1:
Toast.makeText(this, "删除菜单被点击了", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 2:
Toast.makeText(this, "保存菜单被点击了", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 3:
Toast.makeText(this, "帮助菜单被点击了", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 4:
Toast.makeText(this, "添加菜单被点击了", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 5:
Toast.makeText(this, "详细菜单被点击了", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 6:
Toast.makeText(this, "发送菜单被点击了", Toast.LENGTH_LONG).show();
break; }
return false;


}


//tv设置OnCreateContextMenuListener
tv.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu arg0, View arg1,
ContextMenuInfo arg2) {
// TODO Auto-generated method stub
populateMenu(arg0);
//super.onCreateContextMenu(arg0,arg1,arg2);
}
}) ;







lizhengjun2010 2011-07-05
  • 打赏
  • 举报
回复
楼主,程序没有问题!!!
菜单是点击menu键才弹出的! 不是一直显示在屏幕下方的!!

你点击下menu键 试试能不能弹出你想要的菜单!!

试试吧!
傲慢的上校 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xinqiqi123 的回复:]

super.onCreateOptionsMenu(menu);
这2行代码顺序反了吧,this.populateMenu(menu);在前
还有onOptionsItemSelected方法里面怎么return false
[/Quote]
xinqiqi123 2011-07-04
  • 打赏
  • 举报
回复
super.onCreateOptionsMenu(menu);
这2行代码顺序反了吧,this.populateMenu(menu);在前
还有onOptionsItemSelected方法里面怎么return false
思考的芦苇 2011-07-04
  • 打赏
  • 举报
回复
fontlose 2011-07-04
  • 打赏
  • 举报
回复
ms没什么问题,你点菜单键没出菜单吗?

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧