私は奇妙な問題があります、私は私のAndroidアプリケーションでこのようにmenu.xmlファイルを使用していました:
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:compat="http://schemas.Android.com/apk/res-auto" >
<item
Android:id="@+id/action_refresh"
Android:orderInCategory="100"
Android:title="@string/action_refresh"
Android:icon="@drawable/toc"
compat:showAsAction="always"/>
</menu>
うまくいきましたが、数日前にEclipseを最新バージョンに更新していたところ、app:showAsAction = "always"でエラーが表示されました。
Appcompatライブラリを使用せず、その後アクションバーアイコンをオーバーフローバーに移動して、アクションバーにをまったく表示しない場合は、Android:showAsActionを使用する必要があります。
とにかく、appcompatライブラリは私の基本スタイルの親です。それを解決するにはどうすればよいですか?
あなたは3つのことをする必要があります-
これら3つを追加しますxmlns:tools="schemas.Android.com/tools" tools:context="com.example.sample.YourActivity" xmlns:yourapp="http://schemas.Android.com/apk/res-auto"
から<menu>
鬼ごっこ
いつものxmlns:Android="http://schemas.Android.com/apk/res/Android"
追加 yourapp:showAsAction="ifRoom"
から<item>
。
最後に、Project-> Clean ...でプロジェクトをクリーンアップします。
最後のステップは私のためにそれを解決したものです。単にプロジェクトを掃除する(ときどき汚くなることがある)
最終的なコードは次のようになります。
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="schemas.Android.com/tools"
tools:context="com.example.sample.YourActivity"
xmlns:yourapp="http://schemas.Android.com/apk/res-auto" >
<item
Android:id="@+id/action_share"
Android:orderInCategory="100"
Android:title="Share"
Android:icon="@drawable/ic_share_white"
yourapp:showAsAction="ifRoom" />
</menu>
これは私のために働きます私はappcompatlibraryを使用しました:
compat:showAsAction="always"
の代わりに:
app:showAsAction="always"
また、compat:showAsAction = "always"を使用するには、menu.xml内に次の行を含めます。
<menu
......
<!-- include the below line -->
xmlns:compat="http://schemas.Android.com/apk/res-auto" >
同じ問題に直面した。これらの2つのオプションは私にとってうまくいきました:
1.含む-xmlns:compat = "http://schemas.Android.com/apk/res-auto">を使用し、次を使用: "compat:showAsAction =" ifRoom "/>"
2. compatを含めず、単純にapp:showAsAction = "ifRoom" />を使用する
PS:Android Studioを使用しています。
Appcompatライブラリを使用しない場合は、Android:showAsActionを使用する必要があります
問題:メニュー項目が正しい名前空間IDを使用していることを確認します:AppCompatResource
Appcompatライブラリを使用する場合、メニューリソースは、Android:名前空間ではなく、app:名前空間のshowAsActionを参照する必要があります。
同様に、appcompatライブラリーを使用しない場合は、Android:showAsAction属性を使用する必要があります。
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:compat="http://schemas.Android.com/apk/res-auto" >
<item
Android:id="@+id/action_refresh"
Android:orderInCategory="100"
Android:title="@string/action_refresh"
Android:icon="@drawable/toc"
tools:ignore="AppCompatResource"
compat:showAsAction="always"/>
</menu>
警告を表示しないようにするには、item
要素に次の行を追加するだけです。 compat
とapp
の名前空間を"http://schemas.Android.com/apk/res-auto"
は実際には特別なことは何もしません。
tools:ignore="AppCompatResource"
完全なコード:
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:compat="http://schemas.Android.com/apk/res-auto" >
<item
Android:id="@+id/action_refresh"
Android:orderInCategory="100"
Android:title="@string/action_refresh"
Android:icon="@drawable/toc"
tools:ignore="AppCompatResource"
compat:showAsAction="always"/>
</menu>
注:compat
タグはapp
または必要に応じて何でもかまいません。