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