【问题标题】:Android toast displaying incorrect String valueAndroid toast 显示不正确的字符串值
【发布时间】:2022-07-04 23:14:49
【问题描述】:

例如,当将开关设置为关闭时,用户应该会收到“警报设置为 00.40”的祝酒词,但由于某种原因,“警报设置为”已被替换为如下所示的一串数字。

代码:

            override fun setSwitchOn(alarm: Alarm) {
            val toastTime = formatTime(alarm)
            val alarmManager = AlarmManager(
                alarm.id,
                alarm.hour,
                alarm.minute,
                true,
                alarm.repeat,
            )
            alarmManager.cancel(requireContext())
            Toast.makeText(
                context,
                "${R.string.toast_alarm_set} $toastTime",
                Toast.LENGTH_SHORT
            ).show()
        }

        override fun setSwitchOff(alarm: Alarm) {
            val alarmManager = AlarmManager(
                alarm.id,
                alarm.hour,
                alarm.minute,
                true,
                alarm.repeat,
            )
            alarmManager.cancel(requireContext())
            Toast.makeText(context, R.string.toast_alarm_cancelled, Toast.LENGTH_SHORT).show()
        }
    })

和字符串资源:

<resources>
    <string name="app_name">App</string>

    // home screen

    <string name="next_alarm">Next Alarm</string>
    <string name="daily_alarm">Daily</string>
    <string name="once_alarm">Once</string>
    <string name="title_delete">Delete Alarm?</string>
    <string name="delete_builder_delete">Delete</string>
    <string name="delete_builder_alarm_deleted">Alarm Deleted</string>
    <!--    this line below -->
    <string name="toast_alarm_set">Alarm set for</string>

所有其他都可以正常工作,在此处更改字符串的内容无济于事。

【问题讨论】:

    标签: android xml android-studio kotlin android-toast


    【解决方案1】:

    您不能在字符串文字中使用字符串资源,例如

    val mystr = "${R.string.somestring} days"
    

    您必须实际调用 getString 来获取字符串(R.string.somestring 只是一个整数资源 ID)。它应该是这样的

    val mystr = "${context.getString(R.string.somestring)} days"
    

    或者在你的情况下

    "${context.getString(R.string.toast_alarm_set)} $toastTime"
    

    【讨论】:

      【解决方案2】:

      Toast.makeText(context, "alarm set for"+R.string.toast_alarm_cancelled, Toast.LENGTH_SHORT).show();

      //我认为可能是它的工作 //如果你提供 toast_alarm_cancelled 我可以帮忙吗

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-15
        • 1970-01-01
        • 2012-01-23
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多