猿问

应用 setBackground() 错误: 不兼容的类型: int 无法转换为可绘制

在一个非常简单的应用程序上工作,在单击按钮时更改背景颜色,我陷入了一个错误,其中背景的颜色无法使用MainActivity.java文件进行更改。


package com.example.audio;


import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;


public class MainActivity extends AppCompatActivity {

    View view;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        view = this.getWindow().getDecorView();

        view.setBackground(R.color.colorAccent);

    }

}

颜色.xml


<?xml version="1.0" encoding="utf-8"?>

<resources>

    <color name="colorPrimary">#008577</color>

    <color name="colorPrimaryDark">#00574B</color>

    <color name="colorAccent">#D81B60</color>

</resources>

activity_main.xml


<?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity">


    <Button

        android:id="@+id/button"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginStart="8dp"

        android:layout_marginLeft="8dp"

        android:layout_marginTop="8dp"

        android:layout_marginEnd="8dp"

        android:layout_marginRight="8dp"

        android:layout_marginBottom="8dp"

        android:text="Button"

        app:layout_constraintBottom_toBottomOf="parent"

        app:layout_constraintEnd_toEndOf="parent"

        app:layout_constraintStart_toStartOf="parent"

        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

在“主页活动.java文件中设置背景时,会弹出以下错误,以显示线条视图。


错误:不兼容的类型:int 无法转换为可绘制


我应该怎么做才能解决此错误?


慕无忌1623718
浏览 270回答 3
3回答

慕盖茨4494581

它可能应该是view.setBackgroundResource(R.color.colorAccent);

Smart猫小萌

使用安卓X,您必须使用而不是yourContext.getResources().getColor(R.color.yourColor)(R.color.yourColor)

汪汪一只猫

与应用程序兼容性活动一起使用:view.setBackground(ContextCompat.getDrawable(context,&nbsp;R.color.colorAccent));和view.setBackgroundColor(ContextCompat.getColor(context,&nbsp;R.color.colorAccent));
随时随地看视频慕课网APP

相关分类

Java
我要回答