SnapTimePicker 项目教程

SnapTimePicker 项目教程

SnapTimePicker[Android] Another Material Time Picker项目地址:https://gitcode.com/gh_mirrors/sn/SnapTimePicker

1. 项目的目录结构及介绍

SnapTimePicker 项目的目录结构如下:

SnapTimePicker/
├── app/
│   ├── build.gradle
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/
│   │   │   │   └── com/
│   │   │   │       └── akexorcist/
│   │   │   │           └── snaptimepicker/
│   │   │   │               ├── MainActivity.kt
│   │   │   │               ├── SnapTimePickerDialog.kt
│   │   │   │               ├── TimeValue.kt
│   │   │   │               └── TimeRange.kt
│   │   │   └── res/
│   │   │       ├── layout/
│   │   │       ├── values/
│   │   │       └── ...
│   │   └── test/
│   └── ...
├── build.gradle
├── gradle.properties
├── settings.gradle
└── ...

目录结构介绍

  • app/: 包含应用程序的主要代码和资源文件。
    • build.gradle: 应用程序的构建脚本。
    • src/: 源代码目录。
      • main/: 主代码目录。
        • java/: Java 或 Kotlin 代码目录。
          • com/akexorcist/snaptimepicker/: SnapTimePicker 的主要代码目录。
            • MainActivity.kt: 应用程序的主活动。
            • SnapTimePickerDialog.kt: SnapTimePicker 对话框的主要类。
            • TimeValue.kt: 时间数据持有类。
            • TimeRange.kt: 时间范围数据持有类。
        • res/: 资源文件目录。
          • layout/: 布局文件目录。
          • values/: 字符串、颜色等资源文件目录。
      • test/: 测试代码目录。
  • build.gradle: 项目的构建脚本。
  • gradle.properties: Gradle 配置文件。
  • settings.gradle: 项目设置文件。

2. 项目的启动文件介绍

项目的启动文件是 MainActivity.kt,位于 app/src/main/java/com/akexorcist/snaptimepicker/ 目录下。

MainActivity.kt 介绍

MainActivity.kt 是应用程序的主活动,负责初始化界面和处理用户交互。以下是 MainActivity.kt 的部分代码:

package com.akexorcist.snaptimepicker

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.view.View
import com.akexorcist.snaptimepicker.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        binding.defaultTimePicker.setOnClickListener {
            // Default TimePicker
            val dialog = SnapTimePickerDialog.Builder()
                .setTitle(R.string.title)
                .setTitleColor(android.R.color.white)
                .build()
            dialog.setListener { hour, minute ->
                onTimePicked(hour, minute)
            }
            dialog.show(supportFragmentManager, SnapTimePickerDialog.TAG)
        }

        binding.customTimePicker.setOnClickListener {
            // Custom TimePicker
            val dialog = SnapTimePickerDialog.Builder()
                .setTitle(R.string.title)
                .setPrefix(R.string.time_prefix)
                .setSuffix(R.string.time_suffix)
                .setThemeColor(R.color.colorAccent)
                .setTitleColor(android.R.color.black)
                .build()
            dialog.setListener { hour, minute ->
                onTimePicked(hour, minute)
            }
            dialog.show(supportFragmentManager, SnapTimePickerDialog.TAG)
        }
    }

    private fun onTimePicked(selectedHour: Int, selectedMinute: Int) {
        val hour = selectedHour.toString().padStart(2, '0')
        val minute = selectedMinute.toString().

SnapTimePicker[Android] Another Material Time Picker项目地址:https://gitcode.com/gh_mirrors/sn/SnapTimePicker

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花淑云Nell

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值