第五

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ly1"
    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/bg"
    android:layout_width="wrap_content"
    android:text="切换背景颜色"
    android:background="@drawable/et"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:textColor="#00BCD4">

</Button>

</RelativeLayout>

Java

package com.example.m19;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Button bg;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        inter();

        View.OnClickListener bg1=new bg1();
        bg.setOnClickListener(bg1);
    }
    public void inter(){
        bg=findViewById(R.id.bg);
    }
    class bg1 implements View.OnClickListener{
        String bj1="#FFFFFF";
        @Override

        public void onClick(View view) {

            AlertDialog dialog;
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this)
                    .setTitle("设置主题背景")           //设置标题
                    .setIcon(R.drawable.et)
                    .setSingleChoiceItems(new String[]{"红", "白", "黑", "蓝",
                    },2,new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            // 点单选按钮时发生的事件,这里which表示你点的单选按钮是第几个
                            switch (which){
                                case 0:bj1="#FFF44336"
                                    ;break;
                                case 1:bj1="#FFFFFF"
                                    ;break;
                                case 2:bj1="#000000"
                                    ;break;
                                case 3:bj1="#FF00BCD4"
                                    ;break;
                            }

                        }
                    })
                    .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            //点确定按钮时发生的事件

                            ((RelativeLayout)findViewById(R.id.ly1)).setBackgroundColor(Color.parseColor(bj1));

                        }
                    })//添加“确定”按钮
                    .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // 点取消按钮发生的事件
                            dialog.dismiss();
                        }
                    });
            dialog = builder.create();
            dialog.show();
        }
    }

}

原文地址:https://www.cnblogs.com/TSHEN/p/11563659.html