メニューリソースの showAsAction エラー解決方法|Android開発

メニューリソース(res/menu/配下)のXML記述時にshowAsActionエラーが出た時の解決方法です。
名前空間宣言(xmlns)を追加して指定します。

メニューのガイドなんかでは以下のように記述されていますが、Android Support Library パッケージv7 appcompat ライブラリを使用しているとandroid:showAsActionでエラーになります。

v7 appcompat ライブラリのGradle ビルド スクリプトはcom.android.support:appcompat-v7:27.1.1のように記述しています。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/icon_settings"
          android:icon="@drawable/ic_settings_white_24dp"
          android:title="@string/settings"
          android:showAsAction="always"/>
</menu>

修正方法

名前空間宣言http://schemas.android.com/apk/res-autoを追加します。
android:showAsActionandroidを追加した名前空間宣言に変更します。

修正後のソースコード

名前空間宣言appを追加。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/icon_settings"
          android:icon="@drawable/ic_settings_white_24dp"
          android:title="@string/settings"
          app:showAsAction="always"/>
</menu>
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です