0

私はちょうど初心者なので、menu.xmlActionBarについては特にAndroidアプリを作ろうとしていました。だから私はMenuItemsを追加しようとしている、ここに私のmenu.xmlコードです:私は私のアプリはMaterial designを使用していたのでapp:showAsActionは常に「never」属性を表示しています

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:PizzaApp="http://schemas.android.com/apk/res-auto" 
    tools:context=".MainActivity"> 

    <item android:id="@+id/action_order_pizza" 
      android:icon="@drawable/order_pizza" 
      android:title="@string/order_pizza" 
      android:orderInCategory="1" 
      PizzaApp:showAsAction="ifRoom"/> 

    <item android:id="@+id/action_settings" 
      android:title="@string/action_settings" 
      android:orderInCategory="2" 
      PizzaApp:showAsAction="never"/> 

</menu> 

は、私が実際にextendAppCompatActivityしなかったが、私はちょうどに、support.v7.app依存を使用しましたアプリを互換にするsupport.v7.appライブラリにはshowAsAction機能が含まれていないため、androidの代わりにAppNameをmenu.xmlに使用しました。しかし、問題は、ActionBarの代わりに、の項目のほかに、オーバーフローにも表示されています。助けてください!そしてここでMainActivityコードは次のとおりです。事前に

import android.content.Intent; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

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

ありがとう!

注:私は代わりにPizzaAppandroidを使用している場合は、アプリを実行すると、まだ、それが正常に動作しても、Androidのメーカーがエラーを示しています!

+0

「私のアプリケーションでマテリアルデザインを使用したかったので、実際にはAppCompatActivityを拡張していませんでした」というのは意味がありません。 AppCompatActivityは特に**すべてのAPIレベルで材料設計を行います**。 – ianhanniballake

+0

@ianhanniballake - このエラーが意味するのは、 '致命的例外:メイン プロセス:com.platform.pizzashop、PID:2475 java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {com.platform.pizzashop/com.platform。 pizzashop.MainActivity}:java.lang.IllegalStateException:このアクティビティでTheme.AppCompatテーマ(または子孫)を使用する必要があります。「 – Robin

+0

」このアクティビティで「Theme.AppCompat」テーマ(または子孫)を使用する必要があります " – ianhanniballake

答えて

1

あなたがそのようなapp:showAsActionとしてAPPCOMPATのどの部分を使用する場合は、あなたがAppCompatActivityを拡張し、Theme.AppCompatを使用する必要があります。 Theme.AppCompatextends Theme.Materialとなり、すべてのAPI 9+デバイスでマテリアルデザインを使用できるようになります。

関連する問題