2016-06-24 12 views
-3

にこの活動をTheme.AppCompatのテーマ(または子孫)を使用する必要があります。あなたは、私が活動でこれを持っているAndroidの

public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener{ 

    private Toolbar mToolbar; 
    private FragmentDrawer drawerFragment; 

    private RecyclerView recyclerView; 
    private IsAdapter isAdapter; 
    private List<Is> isList; 


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

     mToolbar = (Toolbar) findViewById(R.id.toolbar); 

     setSupportActionBar(mToolbar); 
     getSupportActionBar().setDisplayShowHomeEnabled(true); 

     recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 

     isList = new ArrayList<>(); 
     isAdapter = new IsAdapter(this, isList); 


     RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(this, 1); 
     recyclerView.setLayoutManager(mLayoutManager); 
     recyclerView.addItemDecoration(new GridSpacingItemDecoration(2, dpToPx(10), true)); 
     recyclerView.setItemAnimator(new DefaultItemAnimator()); 
     recyclerView.setAdapter(isAdapter); 

     drawerFragment = (FragmentDrawer) 
       getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer); 
     drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), mToolbar); 
     drawerFragment.setDrawerListener(this); 

     // display the first navigation drawer view on app launch 
     displayView(0); 
    } 

私はそれが働いていた、(材料である)私自身のテーマを使用していますさて、私はコードのいくつかの変更を加えた、今私はこのエラーが表示されます。これをどうすれば解決できますか?前もって感謝します。私はGoogleで検索android:theme="@style/MyMaterialTheme">

は、ソリューションが変更AppCompatActivityActivityまたはFragmentActivityに言う:

私のマニフェストファイルを、私はこれを持っています。私はそれを行うとき、私はこれらの行でエラーが表示されます。ここでは

setSupportActionBar(mToolbar); 
getSupportActionBar().setDisplayShowHomeEnabled(true); 

私のstyles.xmlです:私が正しく理解している場合

<resources> 

    <style name="MyMaterialTheme" parent="MyMaterialTheme.Base"> 

    </style> 

    <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

</resources> 
+0

ここに 'styles.xml'ファイルを投稿してください。 – Ironman

+0

@アイロンマン私は感謝しました。 – jason

答えて

1

変更この

<style name="MyMaterialTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

完全なコードにこの

<style name="MyMaterialTheme" parent="MyMaterialTheme.Base"> 

    </style> 

    <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

<resources> 

    <style name="MyMaterialTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

</resources> 

、その後cleanプロジェクトとrebuildそれを。

+0

@jason下記の私の答えを見てください。 – Ironman

+0

このエラーが発生します:要素のスタイルを宣言する必要があります。 – jason

+0

@jasonこのコードだけが 'styles.xml'ファイルにある完全なコードを見てください。 – Ironman

1

、あなたはすでにvalues/styles.xmlでスタイルMyMaterialThemeを定義しています。 ほとんどの基本テーマがTheme.AppCompat.{Light,Dark}.NoActionBarのいずれかに拡張されていますか?たとえば、次のように

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
+0

あなたは何を求めているのですか?ありがとう.. – jason

+0

あなたのプロジェクトでは 'app/src/main/res/values/styles.xml'ファイルが必要です –

+0

はい、私の質問にコードを貼り付けました。 – jason

1

変更の2行

setSupportActionBar(mToolbar); 
getSupportActionBar().setDisplayShowHomeEnabled(true); 

使用これら

setActionBar(mToolbar); 
getActionBar().setDisplayShowHomeEnabled(true); 
2

すべてを行う必要がある追加のandroid:テーマ= "@スタイル/ Theme.AppCompat.Light AndroidManifest.xmlファイルのアプリケーションタグに渡します。

関連する問題