【问题标题】:Android Studio: Context Menu Icons don't appearAndroid Studio:上下文菜单图标不出现
【发布时间】:2016-09-01 14:06:26
【问题描述】:

我有一个列表视图和列表项目的上下文菜单。 我尝试创建一个非常简单的东西 - 使用 android:icon 将图标添加到上下文菜单。 出现上下文菜单,但未显示图标。 我做错了什么? 谢谢。

我的上下文菜单 xml 和 mainactivity.java 是:

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

    <item
        android:id="@+id/action_add"
        android:icon="@android:drawable/ic_menu_add"
        android:title="Add" />
</menu>


public class MainActivity extends AppCompatActivity {

    public ListView listView;
    String listItems[]={"One", "Two", "Three"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=(ListView) findViewById(R.id.mylist);
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listItems);
        listView.setAdapter(adapter);
        registerForContextMenu(listView);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("Select the action");

        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main_menu, menu);
    }
}

【问题讨论】:

    标签: android


    【解决方案1】:

    始终尝试从您的 SDK 文件夹中获取本地副本作为图标,因为这些资源必然会发生变化,并且应用程序的行为可能会有所不同。

    注意:

    如果您想使用任何图标或其他内部可绘制资源,您应该将这些图标或可绘制资源的本地副本存储在您的应用程序资源中,然后从您的应用程序代码中引用本地副本。这样,即使系统的副本发生变化,您也可以保持对图标外观的控制。

    在您获得两者的本地副本后,请尝试以下操作:

    <item
       android:id="@+id/action_delete"
       android:icon="@drawable/ic_delete"
       android:showAsAction="always"
       android:title="Delete" />
    
     <item
        android:id="@+id/action_add"
        android:icon="@drawable/ic_menu_add"
        android:showAsAction="always"
        android:title="Add" />
    

    还有各种资源不是通过 SDK 公开的,所以最好的做法是拥有一个本地副本。

    【讨论】:

    • 我将图标复制为本地副本并尝试使用 showAsAction,但没有结果。浮动上下文菜单上不显示图标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多