Android 开发中错误收集(一)

错误描述

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chencong.activitylifecycletest/com.example.chencong.activitylifecycletest.DialogActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

错误来由

因为我想将DialogActivity设置为dialog对话框模式,在AndroidManifest.xml里面配置代码如下:

<activity 
        android:name=".DialogActivity" 
        android:theme="@android:style/Theme.Dialog">
</activity>

原因

在上面提到的错误提示中,说到了Theme.AppCompat theme,这是因为我们的activity一定是继承了兼容包中的类。
当我打开DialogActivity类时候,是我继承了AppCompatActivity这个类,因为之前都是继承的这个类。

public class DialogActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_layout);
    }
}

错误原因找到了,那么只需要配合使用AppCompatActivity的Theme就行了。

解决方法

根据提示来使用AppCompat的theme,如下:

 <activity
            android:name=".DialogActivity"
            android:theme="@style/Theme.AppCompat.Dialog">
 </activity>

结果

能够在显示对话框
点击Button然后显示DialogActivity对话框

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值