安卓java换主题_android – 你需要使用一个Theme.AppCompat主题(或后代)与这个活动 更改为Theme.AppCompat会导致其他错误...

我在我的应用程序中使用appcompat v22.1.0,并使用工具栏。一切都很好,当我使用Theme.AppCompat.Light.NoActionBar。当我开始实现AlertDialog时,它会产生这样的错误:

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

at android.support.v7.app.AppCompatDelegateImplBase.onCreate(AppCompatDelegateImplBase.java:113)

at android.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:146)

at android.support.v7.app.AppCompatDialog.(AppCompatDialog.java:47)

at android.support.v7.app.AlertDialog.(AlertDialog.java:92)

at android.support.v7.app.AlertDialog$Builder.create(AlertDialog.java:882)

at com.ramabmtr.map.findingmoo.MainActivity.onOptionsItemSelected(MainActivity.java:216)

at android.app.Activity.onMenuItemSelected(Activity.java:2572)

at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:353)

at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:144)

at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:99)

at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:99)

at android.support.v7.internal.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:74)

at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:164)

at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:740)

at android.support.v7.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:802)

at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:153)

at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:949)

at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:939)

at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:598)

at android.support.v7.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:139)

at android.view.View.performClick(View.java:4084)

at android.view.View$PerformClick.run(View.java:16989)

at android.os.Handler.handleCallback(Handler.java:615)

at android.os.Handler.dispatchMessage(Handler.java:92)

at android.os.Looper.loop(Looper.java:137)

at android.app.ActivityThread.main(ActivityThread.java:4812)

at java.lang.reflect.Method.invokeNative(Native Method)

at java.lang.reflect.Method.invoke(Method.java:511)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:559)

at dalvik.system.NativeStart.main(Native Method)

基于这个错误,我改变我的主题为Theme.AppCompat,并把这:

false

true

到我的主题。但它产生相同的错误。

Style.xml(old)

@color/colorPrimary

@color/colorPrimaryDark

Style.xml(新)

false

true

@color/colorPrimary

@color/colorPrimaryDark

任何人都知道如何解决它?

MainActivity.java

package com.ramabmtr.map.findingmoo;

import android.content.DialogInterface;

import android.graphics.Typeface;

import android.os.Bundle;

import android.support.v4.widget.DrawerLayout;

import android.support.v7.app.ActionBarDrawerToggle;

import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.RecyclerView;

import android.support.v7.widget.Toolbar;

import android.view.View;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private Toolbar toolbar;

private TextView toolbarTitle;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

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

setSupportActionBar(toolbar);

getSupportActionBar().setDisplayShowTitleEnabled(false);

Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/panpizza.ttf");

toolbarTitle = (TextView) findViewById(R.id.toolbar_title);

toolbarTitle.setTypeface(myTypeface);

AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());

builder.setTitle(R.string.filter_title);

builder.setMessage("test");

builder.setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int id) {

dialog.dismiss();

}

});

builder.setNegativeButton(R.string.cancel_button, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int id) {

dialog.dismiss();

}

});

AlertDialog dialog = builder.create();

dialog.show();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值