我是我的
User
我有一个
BindingAdapter
它叫什么名字
loadImage
这很好
class User : BaseObservable() {
var username: String? = null
var password: String? = null
var profilePicUrl: String? = null
companion object {
@BindingAdapter("android:profilePicUrl")
fun loadImage(view: ImageView, imageUrl: String) {
Picasso.get().load(imageUrl).into(view)
}
}
}
现在,由于我有更多类似的函数,我想在其他类上使用它们,例如:
object BindingAdapters {
@JvmStatic
@BindingAdapter("android:profilePicUrl")
fun loadImage(view: ImageView, imageUrl: String) {
Picasso.get().load(imageUrl).into(view)
}
}
我的问题是我不能把这门课当作
BindingAdapters
在…上
Activity
或者这个活动视图模型,比如
使用者
我的
LoginActivity
课程:
class LoginActivity : AppCompatActivity(), LoginResultCallbacks {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding: LoginActivityBinding = DataBindingUtil.setContentView(this, R.layout.login_activity)
binding.viewModel = ViewModelProviders.of(this, LoginViewModelFactory(this)).get(LoginViewModel::class.java)
}
...
}
LoginViewModel
课程:
public class LoginViewModel extends ViewModel {
private User user;
private LoginResultCallbacks loginResultCallbacks;
public LoginViewModel(LoginResultCallbacks loginResultCallbacks) {
this.loginResultCallbacks = loginResultCallbacks;
this.user = new User();
}
}
LoginViewModelFactory
班
public class LoginViewModelFactory extends ViewModelProvider.NewInstanceFactory {
private LoginResultCallbacks loginResultCallbacks;
public LoginViewModelFactory(LoginResultCallbacks loginResultCallbacks) {
this.loginResultCallbacks = loginResultCallbacks;
}
@NonNull
@Override
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
return (T) new LoginViewModel(loginResultCallbacks);
}
}