动态更改android:icon

wwwanaya

如何在JAVA代码中动态更改操作栏图标

参见图片,图标编号为2。


(来源:android.com

我想做的是在两个图标之间切换。例如,当用户单击“搜索图标[2]”时,它将变为世界图标。

所以有我得到的代码。

menu.xml

<item android:id="@+id/actionMenu"
          android:icon="@drawable/icon1"
          android:showAsAction="ifRoom" />

然后我们使用以下代码初始化菜单中的JAVA代码:

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

然后,在这里我们要处理这个问题。
首先,我们进行切换以了解它是否存在点击。

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.actionMenu:
            changeIcon(); // Here we call that magic function
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }

因此,然后我们调用changeIcon();。这个功能需要魔术

private void changeIcon(){
        try {
            if(this.theSwitcher){
                // What code need this function?
                // I just need to change icon1 to icon2
                this.theSwitcher = false;
            } else {
                // What code need this function?
                // I just need to change icon2 to icon1
                this.quince = true;
            }

        } catch (Exception e) {
            Log.e("MyBad", "Error: " + e);
        }

    }
懒忍者

尝试以下

private void changeIcon(){
        MenuItem mi = mMenu.findItem(R.id.actionMenu);

        try {
            if(this.theSwitcher){
                // What code need this function?
                // I just need to change icon1 to icon2
                mi.setIcon(R.drawable.icon2);
                this.theSwitcher = false;
            } else {
                // What code need this function?
                // I just need to change icon2 to icon1
                mi.setIcon(R.drawable.icon1);
                this.quince = true;
            }

        } catch (Exception e) {
            Log.e("MyBad", "Error: " + e);
        }

    }

而在

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

动态更改android主题

来自分类Dev

在Flutter中动态更改Icon-Widget的Icon

来自分类Dev

动态更改Android通知文本

来自分类Dev

如何动态更改android:hint?

来自分类Dev

Android-动态更改语言

来自分类Dev

Android动态更改标记标题

来自分类Dev

Android:动态更改位置提供者

来自分类Dev

动态更改android gridview中的列号?

来自分类Dev

Android工具栏菜单-动态更改

来自分类Dev

在Android中动态更改SVG图像颜色

来自分类Dev

在Android通知中动态更改图标

来自分类Dev

在Android中动态更改Libgdx中的视图

来自分类Dev

Android:如何动态更改动画速度?

来自分类Dev

无法动态更改Nestedscrollview的布局参数(android)

来自分类Dev

Android RecyclerView数组列表动态更改

来自分类Dev

Android-如何动态更改片段布局

来自分类Dev

Android动态更改ListView行的字体

来自分类Dev

在Android通知中动态更改图标

来自分类Dev

Android,动态Listview布局滚动更改

来自分类Dev

Android工具栏菜单-动态更改

来自分类Dev

Android:如何动态更改我的 ViewPager 的布局

来自分类Dev

在Android上的动态列表上动态更改图像

来自分类Dev

Android:导航抽屉布局动态更改图标

来自分类Dev

从内存中动态更改android中的列表视图图像

来自分类Dev

动态更改片段布局,而不是替换片段Android SDK

来自分类Dev

如何在Android中动态更改ListView的列表项?

来自分类Dev

如何在Android中动态更改文本大小

来自分类Dev

动态更改Android工具栏/标签栏主题

来自分类Dev

如何在Android按钮中动态更改文本颜色