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

发布于 2024-12-03 12:56:14 字数 837 浏览 1 评论 0原文

现在我想在屏幕底部添加一个菜单。 我写了很多,但仍然不知道如何做到这一点。 我的主要问题是我的主页上没有 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);

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

Now I want to add it a menu on the bottom of the screen.
I wrote a lot of about but still didnt get how to do that.
My main problem is that I dont have an xml file on my main page.
its look liks that:

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

how can I add a menu with an action.
please give me a example.
thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

迎风吟唱 2024-12-10 12:56:15

使用此代码动态添加菜单

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

use this code to add menu dynamically

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;
    }
欢你一世 2024-12-10 12:56:15

如果您的主要活动中没有 XML 文件,那也没关系。您仍然可以按照以下步骤添加菜单 ->

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

    public boolean onCreateOptionsMenu(菜单菜单){
        getMenuInflater().inflate(R.menu.yourmenuxmlfilename, 菜单);
        返回真;
    }
    公共布尔onOptionsItemSelected(菜单项项目){
        开关(item.getItemId){
            案例 R.id.item1:
                // 你想用第一个按钮做什么
                休息;
            案件 .....
                休息;
        }
        返回真;
    }
    

Ya its fine if you dont have an XML file in your main activity. You can still add menu to it by following this steps ->

  1. create an android XML file and select menu as type(It will get stored under res folder's menu sub folder).
  2. Now in your main activity code add this two methods ->

    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;
    }
    
尐偏执 2024-12-10 12:56:15

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

            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");

                }
            });

上下文菜单仅在长按列表项时出现

For a context menu you just add

            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");

                }
            });

The context menu just appears on long click to the list item

明月夜 2024-12-10 12:56:15

对于选项菜单,

创建一个在选项菜单中膨胀的 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

For options menu

create an android xml file that you inflate in options menu

@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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文