編輯:關於android開發
學習 Activity 生命周期時希望通過 Dialog 主題測試 onPause() 和 onStop() 的區別。
點擊按鈕跳轉 Activity 時報錯:
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.activitylifecycletest, PID: 2920 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.activitylifecycletest/com.example.activitylifecycletest.DialogActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:347) at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:316) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:281) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.example.activitylifecycletest.DialogActivity.onCreate(DialogActivity.java:11) at android.app.Activity.performCreate(Activity.java:6664) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
找到最有用的一句話,說明所使用的 theme 和當前 Activity 不匹配。
You need to use a Theme.AppCompat theme (or descendant) with this activity.
AndroidManifest.xml 中 activity 配置如下:
1 <activity 2 android:name=".DialogActivity" 3 android:theme="@android:style/Theme.Dialog"> 4 </activity>
根據報錯提示改為 AppCompat 主題即可:
1 <activity 2 android:name=".DialogActivity" 3 android:theme="@style/Theme.AppCompat.Dialog"> 4 </activity>
查看 java 代碼後發現我的 Activity 繼承 AppCompatActivity 類。在 Android Studio 中創建 Activity 時,如果勾選了 Backwards Compatibility(AppCompat) 選項,所創建的 Activity 會繼承 AppCompatActivity 而不是 Activity,此時需要使用配套的APPCompat主題。
java 代碼:
1 import android.support.v7.app.AppCompatActivity; 2 import android.os.Bundle; 3 4 public class DialogActivity extends AppCompatActivity { 5 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_dialog); 10 } 11 12 }
(轉)Android調用系統自帶的文件管理器進行文件選擇並獲得路徑,android文件管理器Android區別於iOS的沙盒模式,可以通過文件浏覽器浏覽本地的存儲器。An
Android Handler、Loop 的簡單使用,androidhandler1、子線程和子線程之間的通信 package lib.com.myapplicatio
Android無線開發的幾種常用技術綜述 本文由阿裡巴巴移動安全客戶端、YunOS資深工程師Hao(嵌入式企鵝圈原創團隊成員)撰寫,是Hao在嵌入式企鵝
安卓的主要幾大布局,安卓布局今天我們的主要內容就是安卓的主要幾個基礎的布局方式。(主要布局如下:) 1.線性布局(LinerLayout) 2.相對布局(Relative