-1

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

在菜单中的一个项目中,我引用了一个可扩展的项目,如下所示:

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

提前致谢,

4

1 回答 1

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+,请考虑使用此处说明的操作栏

更新

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

于 2012-05-05T16:11:38.473 回答