我已经按照教程将 Android TimePicker 增加到 15 以外的间隔。
Android - TimePicker minutes to 15
我实际上已经将我的 timePicker 正确设置为以 5 为间隔递增。但是,当我不滚动 TimePicker 时,显示的前一分钟和后续分钟不是以 5 为增量。它们是单位数增量。有没有办法在 Android TimePicker 中编辑前一分钟和后一分钟?
这是 TimePicker 的图像。当您滚动浏览分钟时,中间数字以 5 为增量跳转,正如我希望的那样,但中间数字上方和下方的分钟(currentMinute)不是以 5 为增量,我希望它们也是。
最佳答案
此解决方案也适用于监听器以及以编程方式设置时间。
import android.content.Context
import android.util.AttributeSet
import android.widget.NumberPicker
import android.widget.TimePicker
import androidx.databinding.BindingAdapter
import java.lang.reflect.Field
import java.util.*
class TimePickerInterval @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : TimePicker(context, attrs, defStyleAttr) {
private var MINUTE_INTERVAL = 1
override fun getCurrentMinute(): Int {
return super.getCurrentMinute() * MINUTE_INTERVAL
}
override fun getMinute(): Int {
return super.getMinute() * MINUTE_INTERVAL
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
setUp()
}
private fun setUp() {
try {
val classForid = Class.forName("com.android.internal.R\$id")
val field: Field = classForid.getField("minute")
val mMinuteSpinner = findViewById<NumberPicker>(field.getInt(null))
mMinuteSpinner.minValue = 0
mMinuteSpinner.maxValue = 60 / MINUTE_INTERVAL - 1
val displayedValues: MutableList<String> = ArrayList()
var i = 0
while (i < 60) {
displayedValues.add(String.format("%02d", i))
i += MINUTE_INTERVAL
}
mMinuteSpinner.displayedValues = displayedValues.toTypedArray()
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun setOnTimeChangedListener(onTimeChangedListener: OnTimeChangedListener) {
super.setOnTimeChangedListener { tp, hour, minute ->
onTimeChangedListener.onTimeChanged(tp, hour, minute * MINUTE_INTERVAL)
}
}
override fun setMinute(minute: Int) {
super.setMinute(minute/MINUTE_INTERVAL)
}
companion object {
@JvmStatic
@BindingAdapter("time_picker_set_minute_interval")
fun setInterval(view: TimePickerInterval, interval: Int?) {
interval?.let {
view.MINUTE_INTERVAL = interval
view.setUp()
}
}
}
}
在您的 XML 中:
<com.gixon.shared.widgets.TimePickerInterval
android:id="@+id/tp_to"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:timePickerMode="spinner"
time_picker_set_minute_interval="@{5}"
/>
关于android - 当我递增的间隔为 5 时,在 Android TimePicker 中编辑前一分钟和后一分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15737403/
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我正在写一篇关于在Ruby中几乎一切都是对象的博客文章,我试图通过以下示例来展示这一点:classCoolBeansattr_accessor:beansdefinitialize@bean=[]enddefcount_beans@beans.countendend所以从类中我们可以看出它有4个方法(当然,除非我错了):它可以在创建新实例时初始化一个默认的空bean数组它可以计算它有多少个bean它可以读取它有多少个bean(通过attr_accessor)它可以向空数组写入(或添加)更多bean(也通过attr_accessor)但是,当我询问类本身它有哪些实例方法时,我没有看到默认
我有很多这样的文档:foo_1foo_2foo_3bar_1foo_4...我想通过获取foo_[X]的所有实例并将它们中的每一个替换为foo_[X+1]来转换它们。在这个例子中:foo_2foo_3foo_4bar_1foo_5...我可以用gsub和一个block来做到这一点吗?如果不是,最干净的方法是什么?我真的在寻找一个优雅的解决方案,因为我总是可以暴力破解它,但我觉得有一些正则表达式技巧值得学习。 最佳答案 我(完全)不懂Ruby,但类似这样的东西应该可以工作:"foo_1foo_2".gsub(/(foo_)(\d+)/
有没有办法在Rails中获取上周五的日期?我已经找到了获取最近的星期五、前一个星期一或星期日的方法,但我特别需要最后一个星期五。因此,直到本周的周五(包括本周五),都将是前一周的周五。然后从周六开始,就是前一天的周五。例如:3月4日星期六至3月10日星期五->3月3日星期五3月11日星期六到3月星期五。17日->3月10日星期五 最佳答案 您可以使用#prev_occurring从Rails5.2开始:Date.today.prev_occurring(:friday) 关于ruby-o
我正在尝试解决http://projecteuler.net/problem=1.我想创建一个方法,它接受一个整数,然后创建一个包含它前面的所有整数的数组,并将整数本身作为数组中的值。以下是我目前所拥有的。代码不起作用。defmake_array(num)numbers=Array.newnumcount=1numbers.eachdo|number|numbers 最佳答案 (1..num).to_a是您在Ruby中需要做的全部。1..num将创建一个Range对象,以1开始并以任意值num结束是。Range对象有to_a方法通过
我使用“newapp_name”创建了一个新的Rails应用程序,我正在尝试编辑.gitignore文件,但在我的应用程序文件夹中找不到它。我在哪里可以找到它?我安装了Git。 最佳答案 .gitignore位于项目的root中,而不是app子目录中。首先打开终端并进入您的目录。您需要使用ls-a来显示stash文件。然后使用打开.gitignore 关于ruby-on-rails-尝试打开.gitignore以在文本编辑器中对其进行编辑,但在OSXMountainLion上找不到文件位
三分钟集成Tap防沉迷SDK(Unity版)一、SDK介绍基于国家对上线所有游戏必须增加防沉迷功能的政策下,TapTap推出防沉迷SDK,供游戏开发者进行接入;允许未成年用户在周五、六、日以及法定节假日晚上8:00-9:00进行游戏,防沉谜时间段进入游戏会弹窗进行提示!开发环境要求:Unity2019.4或更高版本iOS10或更高版本Android5.0(APIlevel21)或更高版本🔗Unity集成Demo参考链接🔗UnityTapSDK功能体验APK下载链接二、集成前准备1.创建应用进入开发者后台,按照提示开始创建应用;2.开通服务在使用TDS实名认证和防沉迷服务之前,需要在上面创建的应
尝试使用bundleopen命令打开gem源代码,accordingtoofficialdocumentationandinstruction.因此,我在.profile中导出编辑器:exportBUNDLER_EDITOR=viexportEDITOR=vi并尝试打开例如rails使用控制台的源代码:bundleopenrails出现错误CouldnotlocaleGemfile[ruby-2.1.1][~/]$:rails-vRails4.0.3[ruby-2.1.1][~/]$:bundle-vBundlerversion1.5.3[ruby-2.1.1][~/]$:bundle
我有一个存储JSON数据的列。当它处于编辑状态时,我不知道如何显示它。serialize:value,JSON=f.fields_for:valuedo|ff|.form-group=ff.label:short=ff.text_field:short,class:'form-control'.form-group=ff.label:long=ff.text_field:long,class:'form-control' 最佳答案 代替=f.fields_for:valuedo|ff|请使用以下代码:=f.fields_for:va