菜单中的项目就像一个按钮

时间:2012-05-05 15:45:09

标签: android contextmenu menuitem

我有一个问题,从菜单中的项目就像一个按钮,我不知道如何解决它。

在菜单中的项目中,我可以像这样扩展到可扩展的项目:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@+id/item1" android:title="Item1" />
  <item android:id="@+id/item2" android:title="Item2" />
</menu>

并且我不知道如何定义它,并像按钮一样使用它,如下所示:

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  Button button = (Button) findViewById(R.id.button);

  button.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {
      String uri=null;

      Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
                      RingtoneManager.TYPE_RINGTONE);
      if (uri !=null) {
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
                        Uri.parse(uri));        
      } else {
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
                        (Uri)null);
      }

      startActivityForResult(intent, 1);
    }
  });

提前致谢,

1 个答案:

答案 0 :(得分:0)

所以你想要实现一个菜单。对于API 10或更低版本,将menu.xml放在res / menu /中并覆盖活动中的这两个函数:

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
    case R.id.item1:
        // Do something
        break;
    case R.id.item2:
        // Do something else
        break;
    }
    return true;
}

对于API 11+,请考虑将操作栏用作explained here.

<强>更新

对于“首选项”菜单,您将需要使用findPreference()并定义自定义setOnPreferenceClickListener()。而不是在这里复制代码片段,请遵循以下三个详细教程中的任何一个: