相关疑难解决方法(0)

如何使用appCompat 22.1及更高版本的新AlertDialog并设置其样式

我正在尝试从默认的android迁移AlertDialog到appCompat-22.1中包含的新的android 到目前为止我了解你只需导入android.support.v7.app.AlertDialog包以便使用它.

但我怎么样呢呢?例如,更改正/负按钮颜色,标题颜色,消息颜色和背景颜色?

android android-appcompat android-alertdialog android-support-library

149
推荐指数
4
解决办法
13万
查看次数

ActionBarCompat:java.lang.IllegalStateException:您需要使用Theme.AppCompat

我得到在Android 2.3.5一个RuntimeException,但我正在用Theme.AppCompat(RES /价值/的themes.xml).这是电话:http://www.gsmarena.com/samsung_galaxy_y_s5360-4117.php

 <!-- res/values/themes.xml -->
 <?xml version="1.0" encoding="utf-8"?>
 <resources>

     <style name="Theme.Styled" parent="@style/Theme.AppCompat">
         <item name="actionBarStyle">@style/QueryActionBar</item>
         <item name="android:actionBarStyle">@style/QueryActionBar</item>
     </style>

     <style name="QueryActionBar" parent="@style/Widget.AppCompat.ActionBar">
         <item name="background">@color/blueback</item>
         <item name="android:background">@color/blueback</item>
         <item name="backgroundSplit">@color/blueback</item>
         <item name="android:backgroundSplit">@color/blueback</item>
     </style>

 </resources>
Run Code Online (Sandbox Code Playgroud)

这是values-v11的文件.

 <!-- res/values-v11/themes.xml -->
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
    <style name="QueryTheme" parent="@android:style/Theme.Holo">
    <!-- Any customizations for your app running on devices with Theme.Holo here -->
    </style>
 </resources>
Run Code Online (Sandbox Code Playgroud)

这是错误.

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.txt2lrn.www/com.txt2lrn.www.LandingActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with …
Run Code Online (Sandbox Code Playgroud)

android runtimeexception android-actionbar

102
推荐指数
6
解决办法
16万
查看次数

Android如何通过支持actionbar获取AppCompat.Translucent类型主题?

我想将支持操作栏添加到我的一个活动中,我之前一直在使用theme.translucent和这个活动,但是为了使支持actionbar工作我需要继承Theme.AppCompat,我需要保持半透明这个活动的主题,但不幸的是,我没有默认情况下可以看到的Theme.AppCompat.translucent,有什么方法可以做到这一点?

android android-theme android-actionbar android-actionbar-compat

63
推荐指数
3
解决办法
4万
查看次数

没有ActionBar的Android Activity

Activities在我的应用程序中有所不同,并且在所有这些应用程序中我都不想要Action Bar.我找不到如何禁用它.我试图找到一个属性来应用它,main_activity.xml但到目前为止我没有找到任何东西.有人可以帮帮我吗?

java android android-actionbar

57
推荐指数
8
解决办法
11万
查看次数

当inflater与ApplicationContext一起使用时,不应用主题/样式

我有一个主题,将TextView的textColor指定为红色.

我正在使用LayoutInflater来实例化TextView.问题是当使用ApplicationContext创建的inflater时,样式不会应用于TextView - 颜色不是红色.使用activity创建LayoutInflater时,一切正常.

为什么会发生这种情况,如何解决?

/res/values/styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyTheme">
        <item name="android:textViewStyle">@style/MyTextView</item>
    </style>

    <style name="MyTextView" parent="@android:style/Widget.TextView">
        <item name="android:textColor">#f00</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中:

<application 
    android:icon="@drawable/icon" 
    android:label="@string/app_name"
    android:theme="@style/MyTheme"
    >
Run Code Online (Sandbox Code Playgroud)

码:

public class A extends Activity {

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

        final LayoutInflater goodInflater = getInflater((Activity)this); 
        final LayoutInflater badInflater = getInflater(getApplicationContext());
        final LinearLayout container = (LinearLayout)findViewById(R.id.container);

        findViewById(R.id.add_with_appContext).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                add(container, badInflater); // Creates gray TextView
            }            
        });

        findViewById(R.id.add_with_activity).setOnClickListener(new OnClickListener() {
            @Override
            public …
Run Code Online (Sandbox Code Playgroud)

android themes coding-style

44
推荐指数
3
解决办法
2万
查看次数

MainActivity.this与getApplicationContext()之间有何不同

我正在尝试ProgressDialog.But我很困惑.

1.pd=ProgressDialog.show(MainActivity.this, "", "Fething data");

当我使用(MainActivity.this)然后它没关系.但

2.pd=ProgressDialog.show(getApplicationContext(), "", "Fething data");

当我使用(getApplicationContext())时,它是错误的.

这个progressDialog有什么问题?

(MainActivity.this)vs(getApplicationContext())之间有什么不同

当我用它完美时间?

对于getApplicationContext()错误是:

04-09 15:05:37.453: E/AndroidRuntime(9980): FATAL EXCEPTION: main
04-09 15:05:37.453: E/AndroidRuntime(9980): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
04-09 15:05:37.453: E/AndroidRuntime(9980):     at android.view.ViewRootImpl.setView(ViewRootImpl.java:571)
04-09 15:05:37.453: E/AndroidRuntime(9980):     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:246)
04-09 15:05:37.453: E/AndroidRuntime(9980):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
04-09 15:05:37.453: E/AndroidRuntime(9980):     at android.app.Dialog.show(Dialog.java:281)
04-09 15:05:37.453: E/AndroidRuntime(9980):     at android.app.ProgressDialog.show(ProgressDialog.java:116)
04-09 15:05:37.453: E/AndroidRuntime(9980):     at android.app.ProgressDialog.show(ProgressDialog.java:99)
04-09 …
Run Code Online (Sandbox Code Playgroud)

android

40
推荐指数
4
解决办法
4万
查看次数

测试ActionBarActivity时,"你需要使用Theme.Appcompat主题...",但我是

测试一个在Eclipse中通过Android JUnit测试从android-support-v7-appcompat使用ActionBarActivity的应用程序时遇到问题.在模拟器或设备中运行时,一切似乎都能正常工作.

我尝试使用ActivityUnitTestCase中的模拟应用程序和使用ActionBarActivity的startActivity,并按照ActionBarCompat中的建议更改了值-v11等中的父主题:java.lang.IllegalStateException:您需要使用Theme.AppCompat但它仍然无效.

你需要使用一个Theme.AppCompat主题(或后代),这个活动也没有给出答案,也就是那个问题的人既没有在他的清单中指定的Theme.AppCompat(我这样做),也不是他真的想要扩展ActionBarActivity(我这样做).他的解决方案是简单地扩展Activity.

我究竟做错了什么?

这是我得到的错误(来自Junit-Window的Failure-Trace):

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:108)
at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
at android.hello.HelloWorldActivity.onCreate(HelloWorldActivity.java:14)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.test.ActivityUnitTestCase.startActivity(ActivityUnitTestCase.java:158)
at android.hello.test.HelloWorldActivityTest.setUp(HelloWorldActivityTest.java:26)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)
Run Code Online (Sandbox Code Playgroud)

HelloWorldActivity.java

package android.hello;

import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloWorldActivity extends ActionBarActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView tv = …
Run Code Online (Sandbox Code Playgroud)

java android unit-testing android-actionbar android-actionbar-compat

36
推荐指数
1
解决办法
6685
查看次数

如何修复此错误:您需要在此活动中使用Theme.AppCompat主题(或后代)

我搜索了所有的互联网网站来修复这个错误,但我不能.我只想用两个按钮创建AlertDialog是和否.

这是我的代码:

import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class DialogActivity extends AppCompatActivity {

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

    Button btnDialog= (Button) findViewById(R.id.btnDialog);
    btnDialog.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showDialogMessage();
        }
    });
}

private void showDialogMessage(){

    AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
    // Add the buttons
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            // User clicked OK button
        }
    });
    builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
        public …
Run Code Online (Sandbox Code Playgroud)

android themes android-alertdialog appcompatactivity

11
推荐指数
1
解决办法
2万
查看次数

扩展类android.support.v7.widget.Toolbar时出错.我的错误或错误?

使用SDK 22预览时,我的所有布局都出现以下渲染问题.

扩展类android.support.v7.widget.Toolbar时出错.

java.lang.NoSuchFieldError:View_theme

就我而言,问题是styles.xml:

带渲染问题的XML:

<resources>

    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar" />
    <!-- Base application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>
        <item name="android:textColorPrimary">@color/primary_text</item>
    </style>

</resources>
Run Code Online (Sandbox Code Playgroud)

XML没有问题:

<resources>

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar" />
    <!-- Base application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>
        <item name="android:textColorPrimary">@color/primary_text</item>
    </style>

</resources>
Run Code Online (Sandbox Code Playgroud)

请注意我必须添加@style/父引用.这似乎解决了我的问题(重建后).

问题,这是我的错误还是错误?很多教程都没说(包括官方Android页面)

摇篮:

compileSdkVersion 22
buildToolsVersion '22.0.1'
minSdkVersion 15
targetSdkVersion 22
classpath 'com.android.tools.build:gradle:1.1.0'
Run Code Online (Sandbox Code Playgroud)

最后注意:我没有使用工具栏.

android android-appcompat android-support-library android-studio android-styles

8
推荐指数
1
解决办法
6926
查看次数

无法在ActionBarActivity中创建alertDialog

我有一个Activity延伸ActionBarActivity.每当我尝试在其中创建一个时AlertDialog,就会在创建对话框的行中崩溃,从而产生此错误

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

但我已经在使用Appcompat主题,Theme.AppCompat.Light.NoActionBar因为我正在使用工具栏.这可能是什么原因?这是我的活动:

import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;



public class MyActivity extends ActionBarActivity {

    Toolbar toolbar;



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

        toolbar = (Toolbar)findViewById(R.id.tool_bar_comment);
        setSupportActionBar(toolbar);
                AlertDialog alertDialog;
                alertDialog = new AlertDialog.Builder(getApplicationContext()).create();
                alertDialog.setTitle("Network error");
                alertDialog.setMessage("Check network connection and try again.");
                alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "ok", new DialogInterface.OnClickListener() { …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-theme android-alertdialog android-actionbar-compat

7
推荐指数
2
解决办法
8045
查看次数