📜  Android 中的滑块日期选择器

📅  最后修改于: 2022-05-13 01:54:19.368000             🧑  作者: Mango

Android 中的滑块日期选择器

滑块日期选择器是我们在大多数应用程序中看到的最受欢迎的功能之一。我们可以在大多数旅行计划应用程序、机票预订服务等中看到这个滑块日期选择器。使用 Slider date Picker 可以高效地选择日期。在本文中,我们将了解如何在 Android 中实现 Slider Date Picker。下面给出了一个示例 GIF,以了解我们将在本文中做什么。请注意,我们将使用Java语言来实现这个项目。

Android 示例 GIF 中的滑块日期选择器

滑块日期选择器的应用

  • 此滑块日期选择器最常见的应用是在大多数旅行计划应用程序中使用。
  • 这个日期选择器也可以在票务预订服务中看到。
  • 您可以在考试表格填写申请中看到此滑块日期选择器。

滑块日期选择器的属性

Attributes

Description

.setStartDate()To set the starting Date of the Calender.
.setEndDate()To set the ending Date of the Calender.
.setThemeColor()To set the theme Color.
.setHeaderTextColor()To set the header text Color.
.setHeaderDateFormat()To set the Date Format.
.setShowYear()To show the current year.
.setCancelText()To cancel text.
.setConfirmText()To confirm text.
.setPreselectedDate()To select today’s date.

分步实施

第 1 步:创建一个新项目

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

第 2 步:添加依赖项和 JitPack 存储库

导航到Gradle Scripts > build.gradle(Module:app)并在依赖项部分添加以下依赖项。

将 JitPack 存储库添加到您的构建文件中。将其添加到 allprojects{} 部分中存储库末尾的根 build.gradle 中。

添加此依赖项后同步您的项目,现在我们将转向它的实现。

第 3 步:在您的 activity_main.xml 文件中创建一个新的 Slider Date Picker

导航到app > res > layout > activity_main.xml并将以下代码添加到该文件中。下面是activity_main.xml文件的代码。

XML


      
    
    
      
    
    


Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
  
import androidx.appcompat.app.AppCompatActivity;
  
import com.niwattep.materialslidedatepicker.SlideDatePickerDialog;
import com.niwattep.materialslidedatepicker.SlideDatePickerDialogCallback;
  
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
  
public class MainActivity extends AppCompatActivity implements SlideDatePickerDialogCallback {
      
    // Initialize textview and button
    Button button;
    TextView textView;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // button and text view called using id
        button = findViewById(R.id.button);
        textView = findViewById(R.id.textView);
  
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Calendar endDate = Calendar.getInstance();
                endDate.set(Calendar.YEAR, 2100);
                SlideDatePickerDialog.Builder builder = new SlideDatePickerDialog.Builder();
                builder.setEndDate(endDate);
                SlideDatePickerDialog dialog = builder.build();
                dialog.show(getSupportFragmentManager(), "Dialog");
            }
        });
    }
  
    // date picker
    @Override
    public void onPositiveClick(int date, int month, int year, Calendar calendar) {
        SimpleDateFormat format = new SimpleDateFormat("EEEE, MMM dd, yyyy", Locale.getDefault());
        textView.setText(format.format(calendar.getTime()));
    }
}


第 4 步:使用MainActivity。 Java文件

转到主活动。 Java文件,参考如下代码。下面是MainActivity 的代码。 Java文件。代码中添加了注释以更详细地理解代码。

Java

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
  
import androidx.appcompat.app.AppCompatActivity;
  
import com.niwattep.materialslidedatepicker.SlideDatePickerDialog;
import com.niwattep.materialslidedatepicker.SlideDatePickerDialogCallback;
  
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
  
public class MainActivity extends AppCompatActivity implements SlideDatePickerDialogCallback {
      
    // Initialize textview and button
    Button button;
    TextView textView;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // button and text view called using id
        button = findViewById(R.id.button);
        textView = findViewById(R.id.textView);
  
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Calendar endDate = Calendar.getInstance();
                endDate.set(Calendar.YEAR, 2100);
                SlideDatePickerDialog.Builder builder = new SlideDatePickerDialog.Builder();
                builder.setEndDate(endDate);
                SlideDatePickerDialog dialog = builder.build();
                dialog.show(getSupportFragmentManager(), "Dialog");
            }
        });
    }
  
    // date picker
    @Override
    public void onPositiveClick(int date, int month, int year, Calendar calendar) {
        SimpleDateFormat format = new SimpleDateFormat("EEEE, MMM dd, yyyy", Locale.getDefault());
        textView.setText(format.format(calendar.getTime()));
    }
}

现在单击运行选项,构建 Gradle需要一些时间。之后,您将在设备上获得如下所示的输出。

输出: