Android项目中的应用程序级别Kotlin函数

时间:2019-02-01 18:50:10

标签: android kotlin

有人可以解释如何在Android Studio项目中发布应用程序级别的kotlin函数吗?我有一个Android应用程序,尝试这样做:

        var date: Date = Date()

///////////////////////////////////////////////////////// 
    // this block must be app-level fun
        val format = “dd.MM.yyyy”
        val simpleDateFormat = SimpleDateFormat(format)
        var formattedDate = simpleDateFormat.format(date)
/////////////////////////////////////////////////////////

将Date对象转换为具有自定义格式的String。我在项目中做了很多次(在不同的活动和片段中),所以我认为最好将此代码作为函数(或类,如果会更有效)发布。因此,我将日期和格式作为输入参数,将formattedDate作为输出。设置默认格式值

4 个答案:

答案 0 :(得分:1)

您可以在from tkinter import ttk import tkinter root = tkinter.Tk() ttk.Style().configure("TButton", padding=6, relief="flat", background="#ccc") btn = ttk.Button(text="Sample") btn.pack() root.mainloop() #Output: 上创建扩展函数,该扩展函数接受一种格式并将其用于将日期转换为该格式。您也可以在输入参数上定义默认格式。像这样:

Date

将其放置在整个应用程序都可以访问的文件中(例如,在模块/程序包中名为Extensions.kt的文件中放置所有可重复使用的代码和/或帮助程序代码),然后仅使用{{1 }}。

答案 1 :(得分:0)

这是我的函数的示例,该函数包含在名为Time.kt的单独kotlin文件中。

fun timeConverter(string: String?, i: Int): String {
    val isoFormat = "yyyy-MM-dd'T'HH:mm:ss"
    var expectedFormat = "dd/MM"
    when(i){
        0 -> expectedFormat = "dd/MM"
        1 -> expectedFormat = "EEE"
        2 -> expectedFormat = "HH:mm"
        3 -> expectedFormat = "EEE, dd/MM"
    }
    val dateFormat = SimpleDateFormat(isoFormat, Locale.getDefault())
    val date = dateFormat.parse(string)
    return SimpleDateFormat(expectedFormat).format(date)
}

答案 2 :(得分:0)

使功能成为对象的一部分。

https://www.baeldung.com/kotlin-objects

Kotlin中的对象(不是类)是静态的。如果从使用函数的位置导入对象,则可以在任何地方使用它而无需实例化。

答案 3 :(得分:0)

您可以拥有一个DateUtil class,其格式为functioncompanion。您无需实例化就可以在应用程序中的任何地方使用它。

class DateUtil{
    companion object {
        fun format(date: Date):String{
            val format = "dd.MM.yyyy"
            val simpleDateFormat = SimpleDateFormat(format)
            return  simpleDateFormat.format(date)
        }
    }
}

然后您将其命名为:DateUtil.format(Date())