方法1:
創(chuàng)建的activity是MainActivity extends ActionBarActivity這樣的驰弄。把后面的ActionBarActivity改成Activity,然后導包笛谦,把下面報錯的地方刪掉運行就不報錯了。赚导。屎即。
方法2:
當我的MainActivity繼承自v7包中的ActionBarActivity或者AppCompatActivity時,如果在style.xml文件中指定MainActivity所使用的樣式如下:
<style name="AppTheme" parent="android:Theme.Material.NoActionBar">
<!-- 5.0開始蹈矮,可以在Style.xml文件中統(tǒng)一配置App的樣式 -->
<!-- 狀態(tài)欄的顏色 -->
<item name="colorPrimary">@color/colorPrimary</item>
<!-- 一級文本的顏色 -->
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<!-- 二級文本的顏色 -->
<item name="colorAccent">@color/colorAccent</item>
</style>
會報如下錯誤:
java.lang.IllegalStateException:You need to use a Theme.AppCompat theme(or descendatn) with this activity
解決步驟如下:
1、res/styles.xml文件中重新添加一個style樣式AppTheme.Base鸣驱,然后將AppTheme繼承自AppTheme.Base泛鸟,代碼如下:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowBackground">@android:color/white</item>
</style>
</resources>
2、在res文件中創(chuàng)建values-v21文件夾踊东,然后在此文件夾下創(chuàng)建styles.xml文件北滥,代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="AppTheme.Base">
<item name="android:colorPrimary">@color/colorPrimary</item>
<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="android:colorAccent">@color/colorAccent</item>
</style>
</resources>
說明:values-v21文件夾中的內(nèi)容是專門針對API21以上的版本所使用的配置文件勺美,也就是說如果是API21之前的文件就是使用res/values中的styles.xml,否則使用values-v21文件夾下的styles.xml
通過以上兩步碑韵,就可以輕松實現(xiàn)MainActivity還是繼承自AppCompatActivity赡茸,也就是說可以將Material Design的效果運行在API21之前版本的手機上,并且API21之前的樣式和API21以后的樣式可以由我們自己決定