对于网站运营应该如何做/在线优化seo
Android官方DataBinding(八):Lambda长表达式事件处理
写一个例子说明Android DataBinding如何实现Lambda长表达样式的事件处理。
从Android的View的onClick入手。
写一个User.java的数据模型:
package zhangphil.test;import android.databinding.BaseObservable;
import android.databinding.ObservableField;/*** Created by Phil on 2017/8/17.*/public class User extends BaseObservable {public final ObservableField<String> content = new ObservableField<>();
}
写一个名为Util.java的类,该类定义了一个onMyClick(User u)的事件:
package zhangphil.test;import android.util.Log;/*** Created by Phil on 2017/8/18.*/public class Util {public void onMyClick(User u) {Log.d("按钮事件", u.content.get() + "");}
}
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"><data><variablename="util"type="zhangphil.test.Util" /><variablename="user"type="zhangphil.test.User" /></data><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="@{()->util.onMyClick(user)}"android:text="按钮" /><EditTextandroid:layout_width="match_parent"android:layout_height="50dp"android:text="@={user.content}" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@{user.content}" /></LinearLayout>
</layout>
注意Util的引入以及事件绑定的符号写法。测试的MainActivity.java:
package zhangphil.test;import android.databinding.DataBindingUtil;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;import zhangphil.test.databinding.ActivityMainBinding;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//setContentView(R.layout.activity_main);ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);User user = new User();binding.setUser(user);Util util = new Util();binding.setUtil(util);}
}
代码运行,在button按钮下方输入zhangphil:
点击button按钮后的logcat输出:
08-23 10:31:13.609 17062-17062/zhangphil.test D/按钮事件: zhangphil
附录:
1,《Android官方DataBinding简例(一)》链接:http://blog.csdn.net/zhangphil/article/details/77322530
2,《Android官方DataBinding(二):动态数据更新notifyPropertyChanged》链接:http://blog.csdn.net/zhangphil/article/details/77328688
3,《Android官方DataBinding(三):RecyclerView 使用ViewDataBinding更新数据》链接:http://blog.csdn.net/zhangphil/article/details/77367432
4,《Android官方DataBinding(四):BindingAdapter》链接:http://blog.csdn.net/zhangphil/article/details/77374211
5,《Android官方DataBinding(五):ObservableMap,ObservableArrayMap》链接:http://blog.csdn.net/zhangphil/article/details/77448933
6,《Android官方DataBinding(六): @= 操作符进行双向绑定》链接:http://blog.csdn.net/zhangphil/article/details/77454045
7,《Android官方DataBinding(七):BindingMethods与BindingMethod》链接:http://blog.csdn.net/zhangphil/article/details/77479843