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