【问题标题】:Item from Menu act like a button菜单中的项目就像一个按钮
【发布时间】:2012-05-05 15:45:09
【问题描述】:

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

在菜单中的一个项目中,我引用了一个可以像这样扩展的项目:

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

提前致谢,

【问题讨论】:

  • 我不太明白你在问什么,你能重新写下你的问题吗?
  • @Sam 在我的 R.layout 中,我有一个 menu.xml,其中包含如下两个项目: schemas.android.com/apk/res/android"> 而不是我在 main.xml 中的 R.layout定义了一个按钮,在我的类中扩展了 Activity,我希望 item 像按钮一样工作,而不是 Button.setOnClickListener(new View.OnClickListener) 我想要那个item.setOnClickListener(new View.OnClickListener),但我不能这样定义

标签: android contextmenu menuitem


【解决方案1】:

所以你想实现一个菜单。对于 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()。与其在此处复制代码 sn-ps,不如遵循以下三个详细教程中的任何一个:

【讨论】:

  • 谢谢,但我不想制作选项或上下文菜单,而不是这两个,我想制作一个菜单,其中的项目看起来像 PreferenceActivity ` `
  • 好的,喜欢这张图片吗? androidpartaker.files.wordpress.com/2010/07/…
  • 其实,像这样:link
  • 有用的文章,但这是我的一个老问题:它工作得很好,但铃声不会改变。 (不要写在手机设置之类的东西上)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-23
  • 2011-06-08
  • 2015-08-20
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
  • 2019-12-07
相关资源
最近更新 更多