事件處理
各類view的事件綁定(TextView ImageView CheckBox EditText ListView CustomView)
TextView 點擊事件綁定
//view 層
<data>
<variable
name="acitivity"
type="com.xwjr.wwxh_login.activity.LoginActivity" /> //導入相關變量,即view的事件觸發(fā)的那個類
</data>
<TextView
android:id="@+id/login"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="10dp"
android:background="#dfd"
android:gravity="center"
android:text="登錄"
android:onClick="@{acitivity::login}" //此處綁定對應的函數(shù)名(login)
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
//java類
activityMainBinding.acitivity = this //綁定數(shù)據(jù)法竞,我這里直接用的當前activity所有用this代替
fun login(view: View) {
}
ImageView
開始踩坑
//先來個java類吧 這個類隨便放困介,不用在哪里調(diào)用 @BindingAdapter 注解寫好就行
public class ImageViewAttrAdapter {
//綁定的方法就像傳入的參數(shù)一樣,默認會有一個imageView滨溉,該方法傳入了3個參數(shù)硼瓣,如果要調(diào)用這個,xml也需要有3個屬性
@BindingAdapter({"app:imageUrl", "app:placeHolder", "app:error"})
public static void loadImage(ImageView imageView, String url, Drawable holderDrawable, Drawable errorDrawable) {
Glide.with(imageView.getContext())
.load(url)
.placeholder(holderDrawable)
.error(errorDrawable)
.into(imageView);
}
@BindingAdapter({"app:imageUrl"})
public static void loadImage(ImageView imageView, String url) {
Glide.with(imageView.getContext())
.load(url)
.into(imageView);
}
}
//look look xml 文件 會有上面注解傳入的3個屬性值,這個要跟上面的java 匹配
<ImageView
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/colorAccent"
app:imageUrl="@{`http://ww1.sinaimg.cn/large/7a8aed7bjw1f2zwrqkmwoj20f00lg0v7.jpg`}"
app:placeHolder="@{@drawable/login_wx_icon}"
app:error="@{@drawable/login_wx_icon}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
//so 這樣就可以顯示圖片了
//友情提示:暫不支持 mipmap的資源帚湘,會報錯
1
1
1
11
1
1
1
1