You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin开发Android时TextView仅显示星期数字不显示名称如何解决

问题原因

  • 你定义的dayOfWeek()函数仅将转换后的星期名称输出到控制台,没有设置返回值,且代码中没有调用过这个函数
  • 给TextView赋值时直接使用了全局声明的数字类型day变量的转字符串结果,所以只会显示1-7的数字

修复代码

修改后的逻辑如下,你可以根据需要选择显示中文或者英文星期名:

import android.widget.TextView
import java.util.Calendar

// 无用的全局day变量可以直接删除

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    // 转换为中文星期名
    fun getDayOfWeek(): String {
        val day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK)
        return when (day) {
            Calendar.SUNDAY -> "星期日" // 用系统常量比直接写数字可读性更高,也可以保留原来的1-7数字写法
            Calendar.MONDAY -> "星期一"
            Calendar.TUESDAY -> "星期二"
            Calendar.WEDNESDAY -> "星期三"
            Calendar.THURSDAY -> "星期四"
            Calendar.FRIDAY -> "星期五"
            Calendar.SATURDAY -> "星期六"
            else -> "时间异常"
        }
    }

    val tag = findViewById<TextView>(R.id.Tag)
    // 调用转换函数获取星期名称后赋值
    tag.text = getDayOfWeek()
}

如果不需要复用转换逻辑,可以直接简化写法:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val tag = findViewById<TextView>(R.id.Tag)
    val day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK)
    // 要显示英文直接替换when分支里的字符串即可
    tag.text = when (day) {
        1 -> "Sunday"
        2 -> "Monday"
        3 -> "Tuesday"
        4 -> "Wednesday"
        5 -> "Thursday"
        6 -> "Friday"
        7 -> "Saturday"
        else -> "Time has stopped"
    }
}

内容的提问来源于stack exchange,提问作者M H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:15:05