使用 DataBinding 库绑定事件 [英] Using DataBinding library for binding events
问题描述
我正在尝试使用 Android M 附带的 DataBinding 库 将事件与 xml 中的视图绑定.我正在遵循 Android 开发人员 并逐步实施.对于视图的属性,如可见性,文本其工作正常,但如果我尝试使用 onclick 绑定,则无法按预期工作.这是我迄今为止尝试过的示例代码:
I'm trying to bind events with views in xml using DataBinding Library shipped with Android M. I'm following examples from Android Developers and implementing step-by-step. for the view's attributes like visibility,text its working fine but if I try to bind with onclick, it doesn't work as expected. Here's the sample code that I've tried so far:
<data>
<import type="android.view.View"/>
<variable name="user" type="com.example.databinding.User"/>
<variable name="handlers" type="com.example.databinding.MyHandlers"/>
</data>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstName}"
android:visibility="@{user.isFriend ? View.VISIBLE : View.GONE}" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me"
android:id="@+id/button"
android:layout_gravity="left"
android:onClick="@{handlers.onClickFriend}"/>
主要活动:
public class MainActivity extends AppCompatActivity {
User user;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding =
DataBindingUtil.setContentView(this,R.layout.activity_main);
user = new User("Pankaj","Kumar",true,true);
binding.setUser(user);
}
}
MyHandlers:
MyHandlers:
public class MyHandlers {
public void onClickFriend(View view){
Log.i(MyHandlers.class.getSimpleName(),"Now Friend");
}
public void onClickEnemy(View view){
Log.i(MyHandlers.class.getSimpleName(),"Now Enemy");
}
}
我只编写了必要的代码来提高可读性.有人可以帮我解决这个问题.
I've written only required code to improve readability. Could someone help me on this.
推荐答案
我认为您还需要绑定 handlers
,也许在 onCreate
中是这样的:
I think you will need to bind the handlers
as well, maybe something like this in onCreate
:
MyHandlers handlers = new MyHandlers();
binding.setHandlers(handlers);
这篇关于使用 DataBinding 库绑定事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!