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

如何在Android中以编程方式创建菜单?,android,xml,layout,menu,Android,Xml,Layout,Menu,现在我想在屏幕底部添加一个菜单。 我写了很多关于这方面的文章,但仍然不知道如何做到这一点。 我的主要问题是我的主页上没有xml文件。 它看起来像: public class start extends ListActivity { static final String[] COUNTRIES = new String[] { "NEWS1", "NEWS2","RADIO"}; Intent intent; public void onCreate(

现在我想在屏幕底部添加一个菜单。 我写了很多关于这方面的文章,但仍然不知道如何做到这一点。 我的主要问题是我的主页上没有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<String>(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);
公共类开始扩展ListActivity{
静态最终字符串[]国家/地区=新字符串[]{
“新闻1”、“新闻2”、“广播”};
意图;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setListAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,COUNTRIES));
ListView lv=getListView();
lv.setTextFilterEnabled(真);
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
if(((TextView)view.getText().equals(“NEWS1”)){
intent=新intent(start.this、NewsActivity.class);
如何添加带有操作的菜单。 请给我举个例子。
谢谢

使用此代码动态添加菜单

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;
    }

如果您的主要活动中没有XML文件,这很好。您仍然可以按照以下步骤向其添加菜单->

  • 创建一个android XML文件并选择菜单作为类型(它将存储在res文件夹的菜单子文件夹下)
  • 现在在您的主要活动代码中添加这两个方法->

    public boolean oncreateoptions菜单(菜单菜单){
    getMenuInflater().inflate(R.menu.yourmenuxmlfilename,菜单);
    返回true;
    }
    公共布尔值onOptionsItemSelected(菜单项项){
    开关(item.getItemId){
    案例R.id.1:
    //你想用第一个按钮做什么
    打破
    案例
    打破
    }
    返回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");
    
                    }
                });
    
    上下文菜单仅在长时间单击选项菜单的列表项时出现

    @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
    
    创建一个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
    

    按手机上的菜单按钮时,按Tab Menu或中的菜单?手机上的菜单按钮此方法OnCreateOptions菜单(菜单菜单菜单)从我需要调用它的位置(从什么方法调用它?)以及如何向菜单添加项?只需将此方法添加到start类,但请记住不要在onCreate()中添加此方法方法,分别添加它们。然后转到菜单XML文件向其中添加项目。这非常简单。感谢您的工作,但项目是黑色的,我无法在黑色字体上看到它们。如果我的答案有帮助,请更新我的答案。关于黑色背景,您可以向项目添加图标,以便您可以看到它们。
    公共布尔值有什么用OnPrepareOptions菜单(菜单菜单)
    方法?删除它不会显示任何区别。