2016-09-01 48 views
0

我已閱讀此博客中的自定義設置器。 https://medium.com/google-developers/android-data-binding-custom-setters-55a25a7aea47#.7ylt58pzz我可以在android數據綁定的一個屬性中有兩個參數嗎?

我想如果我能在Java類中的XML

android:imageUrl="@{param1,param2}" 

使用這樣的東西,像以下

@BindingAdapter(value={"imageUrl"}, requireAll=false) 
public static void setImageUrl(ImageView imageView, String url, 
     Drawable placeHolder) { 
    if (url == null) { 
     imageView.setImageDrawable(placeholder); 
    } else { 
     MyImageLoader.loadInto(imageView, url, placeholder); 
    } 
} 

一個屬性的觀點內的兩個參數。由於我已經在android數據綁定中看到了lambdas表達式(實際上它並不是真的用JDK 8編譯),所以任務變量可以添加到處理程序事件中。

android:onClick="@{(theView) -> presenter.onSaveClick(theView, task)}" 

是否有可能在自定義綁定方法中有兩個(或更多)參數?

+0

的可能的複製[如何通過可變數量的參數綁定適配器?](http://stackoverflow.com/questions/42257367/how-to-pass-variable-number-of-arguments-to -databinding適配器) – tir38

回答

0

它也在工作。

@BindingAdapter({"imageUrl", "error"}) 
public static void imageLoader(ImageView imageView, String url, Drawable error) { 
    Picasso.with(imageView.getContext()).load(url).into(imageView); 
} 

<ImageView 
    android:layout_margin="@dimen/activity_horizontal_margin" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:scaleType="centerInside" 
    android:clickable="false" 
    app:imageUrl='@{imgUrl ?? "http://ww1.sinaimg.cn/large/7a8aed7bjw1f2zwrqkmwoj20f00lg0v7.jpg"}' 
    app:error="@{@drawable/ic_image_load_error}" 
    /> 
相關問題