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

Vit*_*sky 9 xml layout android menu

现在我想在屏幕底部添加一个菜单.我写了很多关于但仍然没有得到如何做到这一点.我的主要问题是我的主页上没有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);
Run Code Online (Sandbox Code Playgroud)

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

ila*_*o j 36

使用此代码动态添加菜单

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;
    }
Run Code Online (Sandbox Code Playgroud)


Roc*_*ker 6

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

  1. 创建一个Android XML文件并选择菜单作为类型(它将存储在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;
    }
    
    Run Code Online (Sandbox Code Playgroud)