Java 为什么我的按钮';运行应用程序时,背景颜色是否变为灰色?

Java 为什么我的按钮';运行应用程序时,背景颜色是否变为灰色?,java,android,android-studio,Java,Android,Android Studio,我的代码一定是出了什么问题,它将按钮的背景颜色更改为带有黑色文本的灰色,并且在运行应用程序进行测试时更改了按钮的大小。我不知道出了什么事。请帮忙。这可能是我的代码和AdMob之间的冲突,也可能是代码的结构 package com.example.kakurosidekick; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; impo

我的代码一定是出了什么问题,它将按钮的背景颜色更改为带有黑色文本的灰色,并且在运行应用程序进行测试时更改了按钮的大小。我不知道出了什么事。请帮忙。这可能是我的代码和AdMob之间的冲突,也可能是代码的结构

package com.example.kakurosidekick;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

import java.util.Arrays;
public class MainActivity extends Activity implements View.OnClickListener {

ListView list;
    String[] kakNmbrs_25_5 = {"1+2+5+8+9", "1+2+6+7+9", "1+3+4+8+9", "1+3+5+7+9", "1+3+6+7+8", "1+4+5+6+9", "1+4+5+7+8",
            "2+3+4+7+9", "2+3+5+6+9", "2+3+5+7+8", "2+4+5+6+8", "3+4+5+6+7"};
    String mstrButtn = String.valueOf(0);

        private AdView mAdView;

        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button btn3 = (Button) findViewById(R.id.button3);
            Button btn4 = (Button) findViewById(R.id.button4);
           Button btn25 = (Button) findViewById(R.id.button25);
            Button dbtn2 = (Button) findViewById(R.id.DigiB2);
           btn3.setOnClickListener(this); // calling onClick() method
            btn4.setOnClickListener((View.OnClickListener) this);
            btn25.setOnClickListener(this);
            dbtn2.setOnClickListener((View.OnClickListener) this);
            list = findViewById(R.id.myList);
            Arrays.sort(kakNmbrs_25_5);
            
            MobileAds.initialize(this, new OnInitializationCompleteListener() {
                
                public void goToAnActivity(View view) {

                }
                public void onInitializationComplete(InitializationStatus initializationStatus) {
                }
            });

            mAdView = findViewById(R.id.adView);
            AdRequest adRequest = new AdRequest.Builder().build();
            mAdView.loadAd(adRequest);
        }

    @Override
    public void onClick(View v) {
        Button btn03 = (Button) findViewById(R.id.button3);
        Button btn04 = (Button) findViewById(R.id.button4);
        Button btn05 = (Button) findViewById(R.id.button5);
        Button btn06 = (Button) findViewById(R.id.button6);

        Button[] buttonArray = {btn05, btn04, btn03};

        ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.mytextsize, android.R.id.text1, kakNmbrs_25_5);

        switch (v.getId()) {

            case R.id.button3:
                mstrButtn = "3";
                Log.i(mstrButtn, "I just clicked on");
                break;

                       
            default:
                break;}}}
package com.example.kakurosidekick;
导入android.app.Activity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.ListView;
导入com.google.android.gms.ads.AdRequest;
导入com.google.android.gms.ads.AdView;
导入com.google.android.gms.ads.MobileAds;
导入com.google.android.gms.ads.initialization.InitializationStatus;
导入com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
导入java.util.array;
公共类MainActivity扩展活动实现View.OnClickListener{
列表视图列表;
字符串[]kakNmbrs_25_5={“1+2+5+8+9”、“1+2+6+7+9”、“1+3+4+8+9”、“1+3+5+7+9”、“1+3+6+7+8”、“1+4+5+6+9”、“1+4+5+7+8”,
"2+3+4+7+9", "2+3+5+6+9", "2+3+5+7+8", "2+4+5+6+8", "3+4+5+6+7"};
字符串mstrButtn=String.valueOf(0);
私人顾问马德维尤;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮btn3=(按钮)findViewById(R.id.button3);
按钮btn4=(按钮)findViewById(R.id.button4);
按钮btn25=(按钮)findViewById(R.id.button25);
按钮dbtn2=(按钮)findViewById(R.id.DigiB2);
btn3.setOnClickListener(this);//调用onClick()方法
btn4.setOnClickListener((View.OnClickListener)this);
btn25.setOnClickListener(此);
setOnClickListener((View.OnClickListener)this);
list=findviewbyd(R.id.myList);
数组.sort(kakNmbrs_25_5);
初始化(这是新的OnInitializationCompleteListener(){
公共void goToAnActivity(视图){
}
public void onInitializationComplete(初始化状态InitializationStatus){
}
});
mAdView=findviewbyd(R.id.adView);
AdRequest AdRequest=新建AdRequest.Builder().build();
mAdView.loadAd(adRequest);
}
@凌驾
公共void onClick(视图v){
按钮btn03=(按钮)findViewById(R.id.button3);
按钮btn04=(按钮)findViewById(R.id.button4);
按钮btn05=(按钮)findViewById(R.id.button5);
按钮btn06=(按钮)findViewById(R.id.button6);
按钮[]按钮数组={btn05,btn04,btn03};
ArrayAdapter=新的ArrayAdapter(this,R.layout.mytextsize,android.R.id.text1,kakNmbrs_25_5);
开关(v.getId()){
外壳R.id.按钮3:
mstrButtn=“3”;
Log.i(mstrButtn,“我刚刚点击”);
打破
违约:
中断;}}}
这就是它看起来的样子:

这就是它应该看起来的样子

我的activity_main.xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
    android:background="@android:color/black"
    tools:context=".MainActivity">
<Button
        android:id="@+id/button3"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="3dp"
        android:layout_marginLeft="3dp"
        android:layout_marginTop="3dp"
        android:paddingLeft="0dp"
        android:paddingTop="0dp"
        android:paddingRight="0dp"
        android:paddingBottom="0dp"
        android:text="3"
        android:textSize="24sp"
        android:backgroundTint="#8C8A8A"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/divider3" />
<Button
        android:id="@+id/DigiB3"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_marginTop="70dp"
        android:layout_marginEnd="15dp"
        android:layout_marginRight="15dp"
        android:padding="0dp"
        android:paddingLeft="0dp"
        android:paddingTop="0dp"
        android:paddingRight="0dp"
        android:paddingBottom="0dp"
        android:text="3"
        android:textSize="30sp"
        app:backgroundTint="#009688"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="@+id/divider3" />

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_gravity="bottom|center_horizontal"
        android:layout_marginTop="8dp"
        app:adSize="BANNER"
        app:adUnitId="ca-app-pub-3940256099942544/6300978111"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.4"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/divider6"
        app:layout_constraintVertical_bias="0.0">

    </com.google.android.gms.ads.AdView>

Mb您在xml代码中使用了
工具:backgroundTint=“@color/yourColor”
?如果我是对的,那么就用android替换tools属性,如下所示:

android:backgroundTint=“@color/yourColor”

在作者添加XML部分后更新

只需将
app:backgroundTint=“#009688”
替换为
android:backgroundTint=“#009688”
参考以下答案:

基本上,BackgroundTint应用于背景,因为您没有任何背景属性,所以它什么也不做


编辑:按钮似乎已经有了背景,测试您的xml将显示具有所需颜色的按钮,可能是适配器中的某个颜色?

使用android:background而不是android:backgroundTint。backgroundTint仅适用于API>=21

<Button
        android:id="@+id/DigiB3"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_marginTop="70dp"
        android:layout_marginEnd="15dp"
        android:layout_marginRight="15dp"
        android:padding="0dp"
        android:paddingLeft="0dp"
        android:paddingTop="0dp"
        android:paddingRight="0dp"
        android:paddingBottom="0dp"
        android:text="3"
        android:textSize="30sp"
        app:background="#009688"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="@+id/divider3" />


最好添加styles.xml或colors.xml以及layout.xml。共享
activity\u main.xml
layout文件,以便更好地理解。@FahadNasrullah我刚刚做了,让我知道,谢谢你不清楚在哪里做此更改。我假设在XML的按钮部分。我已经尝试过了,但它不会接受。只需将app:backgroundTint=“#009688”替换为android:backgroundTint=“#009688”