如何在Android中以编程方式创建菜单?

现在我想在屏幕底部添加一个菜单。 我写了很多关于但仍然没有得到如何做到这一点。 我的主要问题是我的主页上没有xml文件。 它看起来像是:

public class start extends ListActivity { static final String[] COUNTRIES = new String[] { "NEWS1", "NEWS2","RADIO"}; Intent intent; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1, COUNTRIES)); ListView lv = getListView(); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position, long id) { if (((TextView) view).getText().equals("NEWS1")){ intent = new Intent(start.this, NewsActivity.class); 

如何添加带动作的菜单。 请举个例子。 谢谢

如果您的主要活动中没有XML文件,那就太好了。 您仍然可以按照以下步骤添加菜单 – >

  1. 创建一个Android XML文件并选择菜单作为types(它将存储在res文件夹的菜单子文件夹下)。
  2. 现在在您的主要活动代码中添加这两个方法 – >

     public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.yourmenuxmlfilename, menu); return true; } public boolean onOptionsItemSelected(MenuItem item){ switch(item.getItemId){ case R.id.item1: // what you want to do with first button break; case ..... break; } return true; } 

使用此代码动态添加菜单

 private static final int NEW_MENU_ID=Menu.FIRST+1; @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, NEW_MENU_ID, 0, "New"); return true; } 

对于您只需添加的上下文菜单

  getListView().setOnCreateContextMenuListener(new OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.setHeaderTitle("Options"); menu.add("Option1"); menu.add("Option2"); menu.add("Option3"); } }); 

只需长按一下菜单即可显示上下文菜单

对于选项菜单

创建一个在选项菜单中膨胀的android xml文件

 @Override public boolean onCreateOptionsMenu(Menu menu) { new MenuInflater(this).inflate(R.layout.options, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { //and your action for menu item click goes here 

那么如何打开对话框呢? 恩。 当点击关于,对话框打开说:由XXX制作,font16并访问:“http://www.xxx.xxx”作为超链接?

.with此代码:

 private static final int NEW_MENU_ID=Menu.FIRST+1; @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, NEW_MENU_ID, 0, "ABOUT"); return true; }