我有错误“类型不匹配:推断类型是字符串!但单位是预期的”,但如果我尝试使用快速修复,我会使用该错误进行无限循环,并且“返回类型的'run'不是被覆盖成员[...]的返回类型的子类型”,同时在这些文件中使用此代码:
ClockViewModel.kt:
package com.everyapp.clock20.ui.clock
import android.annotation.SuppressLint
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import java.text.SimpleDateFormat
import java.util.*
class ClockViewModel : ViewModel() {
private fun timing() {
Timer().schedule(object : TimerTask() {
@SuppressLint("SimpleDateFormat")
override fun run() {
val simpleDateFormat = SimpleDateFormat("HH:mm:ss")
return simpleDateFormat.format(Date())
}
},0, 100)
}
private val _text = MutableLiveData<String>().apply {
value = timing().toString()
}
val text: LiveData<String> = _text
}
ClockFragment.kt:
package com.everyapp.clock20.ui.clock
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.everyapp.clock20.databinding.FragmentClockBinding
class ClockFragment : Fragment() {
private var _binding: FragmentClockBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val clockViewModel =
ViewModelProvider(this).get(ClockViewModel::class.java)
_binding = FragmentClockBinding.inflate(inflater, container, false)
val root: View = binding.root
val textView: TextView = binding.textClock
clockViewModel.text.observe(viewLifecycleOwner) {
textView.text = it
}
return root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}
我希望显示文本并每秒更新一次。
您需要更改ViewModel中变量的值。
我删除了一些不必要的代码。
试试这个代码
class ClockViewModel : ViewModel() {
private fun timing() {
Timer().schedule(object : TimerTask() {
@SuppressLint("SimpleDateFormat")
override fun run() {
val simpleDateFormat = SimpleDateFormat("HH:mm:ss")
text.postValue(simpleDateFormat.format(Date()))
}
},0, 100)
}
val text = MutableLiveData<String>()
}
run没有返回值。它返回无效。所以你的run函数不应该返回任何东西。
大家下午好,我有一个问题,我想知道是什么原因造成的 我的主要活动。kt 视图模型。kt 我想知道为什么会导致类型不匹配,你如何修复这种类型不匹配?(两颗星的线是问题的原因)
我试图构建查询投影,我遇到了以下错误消息: 导致问题的代码: 方法需要类型
我正在学习如何解析一个JSON,并使用数据将其放入回收视图列表中,我正在片段中完成。这让很多人头疼,也有各种各样的错误。第一个是上下文!这是GroupFragment.kt文件内容: 当我运行这个时,我得到了类型不匹配:推断的类型是GroupsFragment,但上下文!这是意料之中的。 在我的UserListAdapter.kt我试图加载userlist_row,我也找不到这个布局资源,即使文件
我对Kotlin是新来的,这是我的问题: 我使用android studio 3.2.1 kotlin版本:1.2.71 对此有什么想法吗?
所以,我已经将Android studio中的一段代码从Java转换为Kotlin,现在我得到了这些错误。 类型不匹配:推断的类型为字符串,但应为正则表达式任务:应用中的app:compiledBugkotlin已完成 以上是完整的代码。我在hassuppercase()和hasSymbol函数中遇到了问题。请帮忙。 错误为:类型不匹配:推断类型为字符串,但应为Regex任务:应用程序中的app:
如果我这样编码,我会得到类型不匹配错误(推断的类型是Query?但应该是CollectionReference?)。。。