我想使用Android数据绑定设置图像。我已经阅读了很多关于这方面的教程,但图片仍然没有出现。
在我的模型中,我有以下方法:
@BindingAdapter({"app:imageUrl"})
public static void loadImage(ImageView view, String url) {
Log.i("III", "Image - " + url);
Context context = view.getContext();
Glide.with(context).load(GlobalValues.img_start_url + url).into(view);
}
我还应该提到“III”、“Image-”url永远不会打印,所以问题不在于Glide。
这是我的xml:
<data>
<variable
name="feeling"
type="bg.web3.helpkarma.ViewModels.Feeling"/>
</data>
<ImageView
android:layout_width="wrap_content"
android:id="@+id/icon"
android:layout_height="wrap_content"
android:layout_marginRight="16dp"
app:imageUrl="@{feeling.maleIcon}"/>
maleIcon是一个url字符串
@SerializedName("male_icon")
@Expose
private String maleIcon;
在这一行:
fun loadImage(layout: ConstraintLayout, url:String)
添加
指向url的类型。结果如下:
fun loadImage(layout: ConstraintLayout, url:String?)
在我的例子中,我将布局作为参数,而不是图像视图。这应该行得通。
Android数据绑定@BindingAdapter
仅支持android命名空间或不支持。因此将定义替换为
@BindingAdapter("imageUrl")
public static void loadImage(ImageView view, String url) {
[...]
}
另外,loadImage()
将永远不会被调用。maleIcon为空。
以下是步骤:1。在模型类的注解@bindapter中声明这个方法(“{bind:应该是我们在这里得到imageurl的同一个变量“}”)
@BindingAdapter({"bind:imageUrl"})
public static void loadImage(ImageView view, String imageUrl) {
Picasso.with(view.getContext())
.load(imageUrl)
.placeholder(R.drawable.placeholder)
.into(view);}
2.转到适配器的xml文件并添加app: ImageUrl="@{user.imageUrl}"。在这一行中,属性app: Imageurl和user.imageUrl应该是我们在bean类中获取图像url的相同参数。我们也定义了相同的第一步。
<ImageView
android:id="@+id/restaurantIV"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
app:image="@{user.image}"
tools:ignore="ContentDescription"/>
3.)别忘了添加,数据是Bean类的名称对象的用户名`
<variable
name="user"
type="com.brst.cocktailclub.beans.restaurantSearch.Datum"/>
</data>`
4.)同时添加xmlns:app=”http://schemas.android.com/apk/res-auto“在布局参数中。
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
5.)请记住,您的Bean类应该扩展BaseWatable。
6.)最后在适配器中设置数据
public void onBindViewHolder(@NonNull RestaurantAdapter.ViewHolder viewHolder, int i) {
Datum datum=data.get(i);
viewHolder.customRestaurantListBinding.setUser(datum);
}
我正在尝试加载带有数据绑定的图像。但我一直没有忘记。我的问题在哪里?下面是我的代码和布局结构。 MyItemViewModel。kt 布局xml
问题内容: 我正在尝试通过JSON基于页面其他位置的按钮单击来重新加载Highcharts图表的数据。最初,我想显示一组默认数据(按类别支出),然后根据用户输入(例如按月支出)加载新数据。我想到的最简单的从服务器输出JSON的方法是将GET请求传递到PHP页面,例如 $ .get(’/ dough / includes / live-chart.php?mode = month’ ,检索此信息按钮
我有以下问题:我正在使用Koin进行DI和持久化的空间。现在我的房间依赖关系如下: 但是我得到了这里描述的错误:Android room Persistent:AppDatabase_Impl不存在 Koin模块定义: 怎么会这样呢?
问题内容: 我正在使用Spring MVC处理JSON POST请求。在幕后,我使用的是在Jackson JSON处理器上构建的MappingJacksonHttpMessageConverter,并在使用mvc:annotation驱动时启用了该功能。 我的一项服务收到了一系列操作: 我发现杰克逊将requestBody映射到java.util.LinkedHashMap项列表(简单数据绑定)。
我已经在现有代码中使用了数据绑定,现在我正在迁移到持久性空间。我已经按照Florina的博客中提到的room的步骤去做了 当我删除房间依赖时,我的代码构建良好,没有java代码错误或BR相关错误 他们俩似乎不在一起工作 迄今采取的步骤: 按此处建议将BaseObservable更改为Observable 将Android Studio更新到3.0.1 尝试使用gradle最新插件canary 6
我有一个带有servicebus触发器和blob输入绑定的python函数。blob的名称与队列消息的内容匹配。我的function.json文件如下所示: 它就像一种魅力。 Id创建一个具有相同绑定的C#函数,但它似乎不起作用。我使用了相同的文件。