Java 如何传递身份证正确吗?我没有';我不明白这个错误? /****这里是我列表中的适配器*****/ 类CurrencyMenuAdapter( var viewModel:MainViewModel, var currencyList:ObservableList):ObservableRecycleServiceAdapter(currencyList){ private val TAG=“CurrencyMenuAdapter” private val model=MainViewModel() 覆盖视图保持器( 父对象:视图组, 视图类型:Int ):BaseViewHolder{ Log.e(标记“onCreateViewHolder:1”) 报税表持有人( ItemcurrencymenuBinding.充气( LayoutFlater.from(父上下文), 父母亲 假的 ) ) } 覆盖BindViewHolder( 持有者:BaseViewHolder, 职位:Int ) { Log.e(标记“onCreateViewHolder:1”) 持有者绑定(当前列表[位置]) } 内部类持有者(私有val绑定:ItemcurrencymenuBinding): BaseViewHolder(binding.root){ 覆盖趣味绑定(项目:CurrencyRoomItem){ binding.item=项目 binding.btnCurrency.setOnClickListener{ viewModel.goToRoom(item.id!!) Paper.book().write(Const.SAVE_ID,item.ID) } } }
} /ong>/ // /*********************************************************************************************/ /这里是ViewModel/Java 如何传递身份证正确吗?我没有';我不明白这个错误? /****这里是我列表中的适配器*****/ 类CurrencyMenuAdapter( var viewModel:MainViewModel, var currencyList:ObservableList):ObservableRecycleServiceAdapter(currencyList){ private val TAG=“CurrencyMenuAdapter” private val model=MainViewModel() 覆盖视图保持器( 父对象:视图组, 视图类型:Int ):BaseViewHolder{ Log.e(标记“onCreateViewHolder:1”) 报税表持有人( ItemcurrencymenuBinding.充气( LayoutFlater.from(父上下文), 父母亲 假的 ) ) } 覆盖BindViewHolder( 持有者:BaseViewHolder, 职位:Int ) { Log.e(标记“onCreateViewHolder:1”) 持有者绑定(当前列表[位置]) } 内部类持有者(私有val绑定:ItemcurrencymenuBinding): BaseViewHolder(binding.root){ 覆盖趣味绑定(项目:CurrencyRoomItem){ binding.item=项目 binding.btnCurrency.setOnClickListener{ viewModel.goToRoom(item.id!!) Paper.book().write(Const.SAVE_ID,item.ID) } } },java,android,android-layout,kotlin,mvvm,Java,Android,Android Layout,Kotlin,Mvvm,} /ong>/ // /*********************************************************************************************/ /这里是ViewModel/ private lateinit var model: MainViewModel private lateinit var alertDialog: AlertDialog var dialog: Dialog? = null override fun
private lateinit var model: MainViewModel
private lateinit var alertDialog: AlertDialog
var dialog: Dialog? = null
override fun hideLogoutDialog() {
alertDialog.dismiss()
}
var loginResponse = ObservableField<LoginResponse>()
override fun town(groupId: String) {
startActivity(Intent(this@MainActivity, CurrencyRoomActivity::class.java))
finish()
}
类MainViewModel:BaseViewModel(){
var firstName=observeField()
var lastName=observeField()
var userEmail=observeField()
var phoneNumber=observeField()
var listRoom=observearraylist()
lateinit变量id:字符串
private var useCase=getcurrencesmenusecase()
初始化{
}
fun goToRoom(组ID:字符串){
getNavigator()!!.town(groupId)
}
/视图模型/
private lateinit var model: MainViewModel
private lateinit var alertDialog: AlertDialog
var dialog: Dialog? = null
override fun hideLogoutDialog() {
alertDialog.dismiss()
}
var loginResponse = ObservableField<LoginResponse>()
override fun town(groupId: String) {
startActivity(Intent(this@MainActivity, CurrencyRoomActivity::class.java))
finish()
}
/*****活动到此结束*****/
类MainActivity:BaseActivity(),MainNavigator{
var firstName = ObservableField<String>()
var lastName = ObservableField<String>()
var userEmail = ObservableField<String>()
var phoneNumber = ObservableField<String>()
var listRoom= ObservableArrayList<CurrencyRoomItem>()
lateinit var id :String
private var useCase = GetCurrenciesMenuUseCase()
init {
}
fun goToRoom(groupId:String){
getNavigator()!!.town(groupId)
}
private lateinit var模型:MainViewModel
私有lateinit var alertDialog:alertDialog
变量对话框:对话框?=null
覆盖乐趣hideLogoutDialog(){
alertDialog.discouse()命令
}
var loginResponse=observeField()
覆盖娱乐城(groupId:String){
星触觉(意图)(this@MainActivity,CurrencyRoomActivity::class.java))
完成()
}
/活动/
private lateinit var model: MainViewModel
private lateinit var alertDialog: AlertDialog
var dialog: Dialog? = null
override fun hideLogoutDialog() {
alertDialog.dismiss()
}
var loginResponse = ObservableField<LoginResponse>()
override fun town(groupId: String) {
startActivity(Intent(this@MainActivity, CurrencyRoomActivity::class.java))
finish()
}
/这里是BaseViewModel/
private lateinit var model: MainViewModel
private lateinit var alertDialog: AlertDialog
var dialog: Dialog? = null
override fun hideLogoutDialog() {
alertDialog.dismiss()
}
var loginResponse = ObservableField<LoginResponse>()
override fun town(groupId: String) {
startActivity(Intent(this@MainActivity, CurrencyRoomActivity::class.java))
finish()
}
抽象类BaseViewModel:ViewModel(){
私有变量mCompositeDisposable:CompositeDisposable=CompositeDisposable();
私有lateinit var mNavigator:WeakReference
有趣的getNavigator():N{
返回mNavigator?.get()
}
趣味设置导航器(导航器:N){
this.mNavigator=WeakReference(导航器)
}
覆盖有趣的onCleared(){
mCompositeDisposable.dispose()
super.onCleared()
}
fun getCompositeDisposable():CompositeDisposable{
返回mCompositeDisposable
}
}
/基本视图模型/
private lateinit var model: MainViewModel
private lateinit var alertDialog: AlertDialog
var dialog: Dialog? = null
override fun hideLogoutDialog() {
alertDialog.dismiss()
}
var loginResponse = ObservableField<LoginResponse>()
override fun town(groupId: String) {
startActivity(Intent(this@MainActivity, CurrencyRoomActivity::class.java))
finish()
}
/private lateinit var model: MainViewModel
private lateinit var alertDialog: AlertDialog
var dialog: Dialog? = null
override fun hideLogoutDialog() {
alertDialog.dismiss()
}
var loginResponse = ObservableField<LoginResponse>()
override fun town(groupId: String) {
startActivity(Intent(this@MainActivity, CurrencyRoomActivity::class.java))
finish()
}
//这里是爱洛
/
private lateinit var model: MainViewModel
private lateinit var alertDialog: AlertDialog
var dialog: Dialog? = null
override fun hideLogoutDialog() {
alertDialog.dismiss()
}
var loginResponse = ObservableField<LoginResponse>()
override fun town(groupId: String) {
startActivity(Intent(this@MainActivity, CurrencyRoomActivity::class.java))
finish()
}
在调用setNavigator之前调用getNavigator(您从未调用setNavigator)
修复它,你只需在调用GETNavigor之前调用StaveNavigor。它会修复你的特定问题,但是让Navigor和StaveNavigor看起来有点奇怪,也许考虑在构造器中初始化它。
编辑:
我想您需要传递MainActivity,因为它将MainNavigator扩展到setNavigator。在这种情况下,只需在MainActivity中使用ViewModel变量并调用
abstract class BaseViewModel<N> : ViewModel() {
private var mCompositeDisposable: CompositeDisposable = CompositeDisposable();
private lateinit var mNavigator: WeakReference<N>
fun getNavigator(): N? {
return mNavigator?.get()
}
fun setNavigator(navigator: N) {
this.mNavigator = WeakReference(navigator)
}
override fun onCleared() {
mCompositeDisposable.dispose()
super.onCleared()
}
fun getCompositeDisposable(): CompositeDisposable {
return mCompositeDisposable
}
MainActivity扩展了MainNavigator,MainViewModel扩展了BaseViewModel,这样应该可以工作了,当我调用它时,我可以在参数中传递什么?老实说,我说不出来,似乎MainActivity在扩展MainNavigator时必须传递,但我不知道您试图遵循的教程是什么,我会使用新的navigati之类的东西在组件上。但是,检查更新的答案,这应该也可以。@mohamedbellar updated抱歉:/getNavigator调用之前需要调用setNavigator的相同错误,当您在onCreate中调用setNavigator,并且仅在onClickListener中调用getNavigator时,错误不应该发生。您可以对您的code正在尝试做什么?你也可以在这里分享问题中的错误信息,而不仅仅是一个链接吗