📜  构建一个 Android 应用程序来检查一年是否为闰年(1)

📅  最后修改于: 2023-12-03 14:55:30.964000             🧑  作者: Mango

Android 应用程序:检查一年是否为闰年

在这篇文章中,我们将介绍如何构建一个 Android 应用程序来检查一年是否为闰年。首先,我们需要了解闰年的定义:

闰年指的是公历年度中有一年为“闰年”,它有 366 天。如果一个年份可以被4整除但不能被100整除,或者可以被400整除,那么这一年就是闰年。

因此,我们将编写一个简单的 Android 应用程序,用户可以输入一个年份,并检查它是否为闰年。我们将先展示整个应用程序的代码,然后解释每一部分。

package com.example.leapyear;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private EditText yearEditText;
    private TextView resultTextView;
    private Button checkButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        yearEditText = findViewById(R.id.yearEditText);
        resultTextView = findViewById(R.id.resultTextView);
        checkButton = findViewById(R.id.checkButton);

        checkButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int year = Integer.parseInt(yearEditText.getText().toString());
                boolean isLeapYear = checkLeapYear(year);
                String result;
                if (isLeapYear) {
                    result = year + "年是闰年!";
                } else {
                    result = year + "年不是闰年!";
                }
                resultTextView.setText(result);
            }
        });
    }

    private boolean checkLeapYear(int year) {
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
            return true;
        } else {
            return false;
        }
    }
}
Layout

首先,我们需要创建一个布局文件,使用户能够输入年份并查看结果。创建一个名为 activity_main.xml 的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <EditText
        android:id="@+id/yearEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:hint="请输入年份"/>

    <Button
        android:id="@+id/checkButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="检查"/>

    <TextView
        android:id="@+id/resultTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:textSize="20sp"
        android:textStyle="bold"/>

</LinearLayout>

该布局包含一个输入框、一个按钮和一个文本框,以显示结果。现在我们来了解一下布局中使用的一些属性。

  • LinearLayout 是一种布局,它将其子视图排成一个列或一行。
  • android:orientation 属性指定了子视图排列的方向。我们将其设置为 vertical,表示垂直排列。
  • android:padding 属性指定了布局的内边距。
  • android:id 属性指定了每个视图的唯一 ID。
  • android:layout_widthandroid:layout_height 属性指定了每个视图的大小。
  • android:inputType 属性指定了输入框的输入类型。
  • android:hint 属性指定了输入框中显示的提示文本。
  • android:text 属性指定了按钮和文本框中显示的文本。
  • android:textSizeandroid:textStyle 属性指定了文本大小和样式。
MainActivity

接下来,我们需要创建一个名为 MainActivity.java 的 Java 类,它将处理用户输入并检查年份是否为闰年。让我们一起来看这个类。

package com.example.leapyear;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private EditText yearEditText;
    private TextView resultTextView;
    private Button checkButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        yearEditText = findViewById(R.id.yearEditText);
        resultTextView = findViewById(R.id.resultTextView);
        checkButton = findViewById(R.id.checkButton);

        checkButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int year = Integer.parseInt(yearEditText.getText().toString());
                boolean isLeapYear = checkLeapYear(year);
                String result;
                if (isLeapYear) {
                    result = year + "年是闰年!";
                } else {
                    result = year + "年不是闰年!";
                }
                resultTextView.setText(result);
            }
        });
    }

    private boolean checkLeapYear(int year) {
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
            return true;
        } else {
            return false;
        }
    }
}

我们首先导入所需的类:

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

然后,我们创建了一个名为 MainActivity 的类,并扩展了 AppCompatActivity 类。该类是 Android 应用程序的主要入口点。

public class MainActivity extends AppCompatActivity {

紧接着,在类中声明了三个实例变量,用于引用 XML 布局中的三个组件:输入框、文本框和按钮。

private EditText yearEditText;
private TextView resultTextView;
private Button checkButton;

onCreate() 方法中,我们绑定了组件并设置了一个侦听器,以在用户点击按钮时检查年份是否为闰年。我们在 yearEditText 组件中获取用户输入的年份。然后,我们使用 checkLeapYear() 方法来检查该年份是否为闰年。最后,我们将结果更新到 resultTextView 组件中。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    yearEditText = findViewById(R.id.yearEditText);
    resultTextView = findViewById(R.id.resultTextView);
    checkButton = findViewById(R.id.checkButton);

    checkButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int year = Integer.parseInt(yearEditText.getText().toString());
            boolean isLeapYear = checkLeapYear(year);
            String result;
            if (isLeapYear) {
                result = year + "年是闰年!";
            } else {
                result = year + "年不是闰年!";
            }
            resultTextView.setText(result);
        }
    });
}

最后,我们创建了一个名为 checkLeapYear() 的私有方法,用于检查一个年份是否为闰年。该方法采用一个整数作为参数,返回一个 boolean 值。

private boolean checkLeapYear(int year) {
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
        return true;
    } else {
        return false;
    }
}

在该方法中,我们按照之前所述的规则来检查一个年份是否为闰年,并返回相应的 boolean 值。

结论

在这篇文章中,我们学习了如何构建一个 Android 应用程序来检查一年是否为闰年。我们创建了一个布局文件,用户可以在其中输入年份并查看结果。然后,我们创建了一个名为 MainActivity.java 的类,处理用户的输入,并最终检查年份是否为闰年。我们希望这篇文章能对你有所帮助,让你更好地了解 Android 应用程序开发。