2

我很新,android development并且无法Menu在应用程序的菜单中添加新项目并在点击时打开并显示菜单视图布局。到目前为止,我只能更改应用程序的menu.xml文件,这足以创建一个button与其他应用程序并排的文件,当您按下Menu按钮时会显示这些文件,但不足以让它链接到任何东西。

我的目标只是让按下按钮导致它连接到一个简单的 xml 布局或对话页面。我猜我需要更改 java 代码,但我不确定完成这项工作需要什么。我会很感激任何建议。

它似乎结束了“要在您的活动中使用菜单,您需要使用 MenuInflater.inflate() 膨胀菜单资源(将 XML 资源转换为可编程对象)。在以下部分中,您将看到如何为每种菜单类型的菜单。” 我想我需要知道的是如何将物品添加到其他物品的充气机中。

有没有人碰巧有我可以插入的香草版本?

这是一个现有代码的示例,它打开一个对话框并处理关闭和“更改”按钮:

private void openHelpDialog() {
    LayoutInflater li = LayoutInflater.from(this);
    View view = li.inflate(R.layout.aboutview, null); 
    TextView tv = (TextView)view.findViewById(R.id.aboutVersionCode);
    tv.setText(getVersionName() + " (revision " + getVersionNumber() + ")");
    new AlertDialog.Builder(MainActivity.this)
    .setTitle(getResources().getString(R.string.application_name) + " " + getResources().getString(R.string.menu_help))
    .setIcon(R.drawable.about)
    .setView(view)
    .setNeutralButton(R.string.menu_changes, new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {
          MainActivity.this.openChangesDialog();
      }
    })
    .setNegativeButton(R.string.close, new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {
      }
    })
    .show();  
}

private void openChangesDialog() {
  LayoutInflater li = LayoutInflater.from(this);
  View view = li.inflate(R.layout.changeview, null); 
  new AlertDialog.Builder(MainActivity.this)
  .setTitle(R.string.changelog_title)
  .setIcon(R.drawable.about)
  .setView(view)
  .setNegativeButton(R.string.close, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        //
    }
  })
  .show();  
}

private void openClearDialog() {
    new AlertDialog.Builder(MainActivity.this)
    .setTitle(R.string.context_menu_clear_grid_confirmation_title)
    .setMessage(R.string.context_menu_clear_grid_confirmation_message)
    .setIcon(android.R.drawable.ic_dialog_alert)
    .setNegativeButton(R.string.context_menu_clear_grid_negative_button_label, new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {
          //
      }
    })
    .setPositiveButton(R.string.context_menu_clear_grid_positive_button_label, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            MainActivity.this.kenKenGrid.clearUserValues();
        }
    })
    .show();  
  }
4

2 回答 2

0

您可以从 Eclipse 中已有的示例项目中找到许多示例。这是你在问什么?

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.option_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Intent serverIntent = null;
    switch (item.getItemId()) {
    case R.id.secure_connect_scan:
        // Launch the DeviceListActivity to see devices and do scan
        serverIntent = new Intent(this, DeviceListActivity.class);
        startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE_SECURE);
        return true;
    case R.id.insecure_connect_scan:
        // Launch the DeviceListActivity to see devices and do scan
        serverIntent = new Intent(this, DeviceListActivity.class);
        startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE_INSECURE);
        return true;
    case R.id.discoverable:
        // Ensure this device is discoverable by others
        ensureDiscoverable();
        return true;
    }
    return false;
}

实际上这段代码取自 BluetoothChat 示例。希望这个有帮助。

于 2012-10-19T01:09:43.000 回答
0

您可以在 Activity 中以编程方式添加子菜单,如下所示。改编自这里的教程:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.optionsmenu, menu);

    SubMenu menu4 = menu.addSubMenu(Menu.NONE, MENU4, 4,"Menu No. 4");
    menu4.add(GROUP1, SUBMENU1, 1, "SubMenu No. 1");
    menu4.add(GROUP1, SUBMENU2, 2, "SubMenu No. 2");
    menu4.setGroupCheckable(GROUP1,true,true);

    return true;

}

在 xml 中,您可以这样做(取自此处):

<item android:title="Normal 1" />

<item android:id="@+id/submenu"
    android:title="Emotions">

    <menu>        

        <item android:id="@+id/happy"
            android:title="Happy"
            android:icon="@drawable/stat_happy" />

        <item android:id="@+id/neutral"
            android:title="Neutral"
            android:icon="@drawable/stat_neutral" />

        <item android:id="@+id/sad"
            android:title="Sad"
            android:icon="@drawable/stat_sad" />

    </menu>

</item>

<item android:title="Normal 2" />

于 2012-10-19T01:49:01.373 回答