如何将字符串转换为Uri并在Android中通过数据绑定应用于ImageView属性src
我正在使用FirebaseFirestore并从中获取用户数据。 数据包含名称、电子邮件和imageUri。但是imageUri类型不是Uri。这是一根绳子。 所以我必须将数据转换成Uri。 所以我使用了Uri.parse(字符串) 我还使用了数据绑定和视图模型 下面是片段如何将字符串转换为Uri并在Android中通过数据绑定应用于ImageView属性src,android,android-imageview,android-databinding,android-viewmodel,Android,Android Imageview,Android Databinding,Android Viewmodel,我正在使用FirebaseFirestore并从中获取用户数据。 数据包含名称、电子邮件和imageUri。但是imageUri类型不是Uri。这是一根绳子。 所以我必须将数据转换成Uri。 所以我使用了Uri.parse(字符串) 我还使用了数据绑定和视图模型 下面是片段 var userImage = MutableLiveData<Uri>() var userName = MutableLiveData<String>() var userEmail = M
var userImage = MutableLiveData<Uri>()
var userName = MutableLiveData<String>()
var userEmail = MutableLiveData<String>()
fun initializeUser() {
firebaseDB.collection(DATA_USERS).document(userId!!).get()
.addOnSuccessListener {
val user = it.toObject(User::class.java)
user?.let {
userImage.value = Uri.parse(user?.userImageUri)
userName.value = user?.userName
userEmail.value = user?.userEmail
}
}
}
var userImage=MutableLiveData()
var userName=MutableLiveData()
var userEmail=MutableLiveData()
趣味初始化器(){
firebaseDB.collection(DATA\u USERS).document(userId!!).get()
.addOnSuccessListener{
val user=it.toObject(user::class.java)
用户?,让我来{
userImage.value=Uri.parse(用户?.userImageUri)
userName.value=用户?.userName
userEmail.value=user?.userEmail
}
}
}
这是XML
<ImageView
android:id="@+id/info_userProfile"
android:layout_width="80dp"
android:layout_height="80dp"
android:scaleType="centerCrop"
android:src="@{viewModel.userImage}" />
姓名和电子邮件都很好用。但是imageView没有
如何解决此问题?您可以使用
BindingAdapter
,如下所示:
public class DataBindingAdapterUtil {
@BindingAdapter("android:src")
public static void setImageUri(ImageView view, Uri userImage) {
view.setImageURI(userImage);
}
}
使用活页夹我很乐意帮助你。如果它解决了您的问题,请将其标记为答案