📌  相关文章
📜  在Android中单击按钮后如何更改背景颜色?

📅  最后修改于: 2021-05-08 21:06:39             🧑  作者: Mango

在本文中,我们将看到如何通过单击按钮来更改屏幕背景。为此,我们将使用onClick()方法。当我们单击按钮时,将调用onClick函数。要为按钮设置点击处理程序事件,我们需要在XML文件中定义android:onClick属性。当单击按钮时,我们还可以使用Java文件中的onClickListener()以编程方式调用此函数。下面给出了一个示例GIF,以了解我们将在本文中做些什么。注意,我们将使用Java语言实现该项目。

单击Android Sample GIF中的按钮后更改背景颜色

分步实施

步骤1:创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。

步骤2:定义颜色

最好预先定义字符串和颜色,而不是对它们进行硬编码,因此我们将定义颜色。

  • 导航至应用程序-> res->值-> colors.xml,打开colors.xml文件
  • 在资源标签内创建一个带有名称的颜色标签,并使用其十六进制代码设置颜色

将以下行添加到colors.xml文件中。

XML
#6200EE
#3700B3
#03DAC5
#0F9D58
#188FCF
#F1D416


XML


  
    
  
    
  
        


Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          
        Button button1, button2;
        final RelativeLayout relativeLayout;
          
        // set button 1 with its id
        button1 = findViewById(R.id.btVar1);
          
        // set button 2 with its id
        button2 = findViewById(R.id.btVar2);
          
        // set relative layout with its id
        relativeLayout = findViewById(R.id.rlVar1);
          
        // onClick function for button 1
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // set the color to relative layout
                relativeLayout.setBackgroundResource(R.color.cool);
            }
        });
          
        // onClick function for button 2
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // set the color to relative layout
                relativeLayout.setBackgroundResource(R.color.warm);
            }
        });
    }
}


步骤3:使用activity_main.xml文件

转到activity_main.xml文件,并参考以下代码。以下是activity_main.xml文件的代码。

XML格式



  
    
  
    
  
        

步骤4:使用MainActivity。 Java文件

  • 使用函数名称andorid设置onClick()属性:onClick =“ changeBackground”
  • 之后,在承载此布局的活动中,创建一个具有相同名称的函数,或者
  • 您可以代替使用onClick()属性直接设置onClickListener()并对其函数编码
  • 在函数内部使用setBackgroundResource(R.color.button_color)函数,这将使用button_color颜色设置背景。

下面是MainActivity的代码。 Java文件。在代码内部添加了注释,以更详细地了解代码。

Java

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          
        Button button1, button2;
        final RelativeLayout relativeLayout;
          
        // set button 1 with its id
        button1 = findViewById(R.id.btVar1);
          
        // set button 2 with its id
        button2 = findViewById(R.id.btVar2);
          
        // set relative layout with its id
        relativeLayout = findViewById(R.id.rlVar1);
          
        // onClick function for button 1
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // set the color to relative layout
                relativeLayout.setBackgroundResource(R.color.cool);
            }
        });
          
        // onClick function for button 2
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // set the color to relative layout
                relativeLayout.setBackgroundResource(R.color.warm);
            }
        });
    }
}

输出: