昨天介绍了databinding的基本使用,那麽当需要改变事件的值又该怎麽写呢
@{() -> view.onSendMsg()}
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="click2"
android:textSize="40sp"
android:onClick="@{() -> view.onSendMsg()}"/>
可以带入position的值进去
@{() -> view.onSendMsg(dataItem.position)}
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="click3"
android:textSize="40sp"
android:onClick="@{() -> view.onSendMsg(dataItem.position)}"/
@{handler::onSendMsg}
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="@{handler::onSendMsg}"
android:text="click"
android:textSize="40sp" />
or
@{handler.onSendMsg}
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="@{handler.onSendMsg}"
android:text="click"
android:textSize="40sp" />
ClickHandler
public class ClickHandler {
Activity activity;
public ClickHandler(Activity mMainActivity)
{
activity = mMainActivity;
}
public void onSendMsg(View view){
Toast.makeText(activity,"clickHandler",Toast.LENGTH_SHORT).show();
Log.d("123","clickHandler");
}
}
MainActivity2
public class MainActivity2 extends AppCompatActivity implements MainActivity2View.View{
ActivityMain2Binding main2Binding;
DataItem dataItem;
int count =0;
ClickHandler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
}
private void init() {
main2Binding=DataBindingUtil.setContentView(this,R.layout.activity_main2);
dataItem=new DataItem();
dataItem.setName("eles");
dataItem.setPasswd("213457");
main2Binding.setDataItem(dataItem);
main2Binding.setView(this);
handler=new ClickHandler(MainActivity2.this);
main2Binding.setHandler(handler);
}
@Override
public void onSendMsg(int position) {
}
@Override
public void onSendMsg() {
}
}
tips:将点击事件写在ClickHandler时,如果把class name第一个英文字是小写,databinding会一直抱错。
那按钮的点击事件就到此结束
print("This line will be printed.") x = ...
User story:用一个简短的句子,描述用户的需求价值,也是大家所熟知的,身为一个「角色」,我想...
因为心情太低落了,掉着泪看教学,我真的很认真的在学,但为什麽要被批评得一无是处。 也许在学技能的同时...
Controller 中⽂可翻译成「控制器」,顾名思义,就是⽤来控制流程⽤的。它可能需 要跟 Mod...
前言: 接下来就要进入网页构思的阶段了,在开始写网站之前,如同画画一样,一定都需要先打一个草稿,除...