【问题标题】:how to use setIcon function on android如何在android上使用setIcon函数
【发布时间】:2015-10-06 10:42:49
【问题描述】:

大家好,我正在尝试在 menuItem 中设置图标。我阅读了 Android 开发者博客,上面写着:

public abstract MenuItem setIcon (int iconRes)    

更改与此项目关联的图标。这个图标不会一直显示,所以标题应该足以描述这个项目。有关支持图标的菜单类型,请参阅菜单。

此方法将设置图标的资源ID,用于在显示该项目时延迟获取Drawable。

参数:iconRes要显示的新图标(作为资源ID)。

返回:此项目,因此可以调用其他设置器。

我应该把一个int作为参数。特别是我的图标的 ID。但我不知道我必须在哪里找到这个 ID。我只是将名为“badIcon.ico”的图标放在可绘制文件夹中。现在我应该继续吗? 谢谢大家

【问题讨论】:

    标签: android menu icons


    【解决方案1】:

    这很简单.... 看这个教程..here

    创建menu.xml

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
          <item android:id="@+id/next"
                  android:icon="@drawable/ic_next"
                  android:title="@string/next" />
          <item android:id="@+id/previous"
                android:icon="@drawable/ic_previous"
                android:title="@string/previous" />
          <item android:id="@+id/list"
                android:icon="@drawable/ic_list"
                android:title="@string/list" /> 
    </menu>
    

    现在您可以在菜单上设置 ICON

    现在在 CreateOptionMenu

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

    然后得到那个菜单..

    public boolean onOptionsItemSelected(MenuItem item) {
          switch (item.getItemId()) {
          case R.id.next:
                Toast.makeText(this, "You have chosen the " + getResources().getString(R.string.next) + " menu option",
                            Toast.LENGTH_SHORT).show();
                return true;
          …
          default:
                return super.onOptionsItemSelected(item);
          }
    

    【讨论】:

      【解决方案2】:

      如果您想以静态方式向菜单项添加图标,您可以编写

      <?xml version="1.0" encoding="utf-8"?>
      <menu xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:id="@+id/yourId"
        android:icon="@drawable/badIcon"
        android:title="@string/yourTitle" /> 
      </menu>
      

      您可以像这样以编程方式添加图标

      menu.add(0, MENU_TITLE, 0, "title").setIcon(R.drawable.badIcon); 
      

      【讨论】:

      • 是的,这正是我所寻找的。这工作完美。更准确地说..在我在网上看到的示例中,sintax 是这样的:menu.add(0, MENU_TITLE, 0, 243238).setIcon(98928299);这个数字是什么意思,如何使用这种方法设置图标?
      • 该数字可能是自动生成类 R 的整数值。您可以通过按住 ctrl 并单击 R.drawable.badIcon 来查看这些数字。例如单击 badIcon 按住 ctrl。您将在 R 类中看到 Integer 值...它没有用,因为这个数字是他们项目资源的 int 值..如果您得到了您正在搜索的内容,请勾选正确的按钮,以便其他人知道您得到你的答案..希望这会有所帮助..
      • 我尝试按住 ctrl 和 LeftClick 图标(我猜它应该也适用于布局)但没有任何反应。你能解释一下我如何在我的情况下看到这些数字.. 无论如何感谢您的回答:)
      • 它不仅用于导航布局。如果你没有得到这些整数是什么然后按 Shift 两次.. 你会看到一个提示 Search Everywhere 然后按大写 R 你会看到一个类文件类似于' R(com.yourdomain.com)' 。查看该类中的代码。你会明白数值是什么。注意:永远不要编辑这些代码。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      相关资源
      最近更新 更多