監聽器綁定如何實現onTextChange
監聽器綁定中TextView實現的onClickListenerBingding中的數據是Activity傳給了XML后通過方法傳回了Activity 并Toast顯示,這個Toast顯示的數據是已知的并且是固定的,如果我想用監聽器綁定實現onTextChange,該如何獲取到EditText中的數據并傳遞給Activity并Toast顯示呢?
監聽器綁定中TextView實現的onClickListenerBingding中的數據是Activity傳給了XML后通過方法傳回了Activity 并Toast顯示,這個Toast顯示的數據是已知的并且是固定的,如果我想用監聽器綁定實現onTextChange,該如何獲取到EditText中的數據并傳遞給Activity并Toast顯示呢?
2017-08-09
舉報
2017-08-15
額,其實我是想問如何實現:
<EditText
????????????android:onTextChanged="@{()?->?person.onTextChanged(這里面不知道怎么實現)}"
????????????android:layout_width="match_parent"
????????????android:layout_height="wrap_content"?/>
2017-08-13
不知道我寫的代碼對不對你的問題。
我的理解是:
在EditText上綁定一個onTextChange事件,每當EditText中輸入的內容改變了,使用Toast顯示出來。
下面貼上我的代碼
//?MainActivity.java public?class?MainActivity?extends?AppCompatActivity?{ ????private?ActivityMainBinding?mBinding; ????private?User?mUser; ????@Override ????protected?void?onCreate(Bundle?savedInstanceState)?{ ????????super.onCreate(savedInstanceState); ????????//?setContentView(R.layout.activity_main); ????????mBinding?=?DataBindingUtil.setContentView(this,?R.layout.activity_main); ????????mUser?=?new?User("Oz",?"Young"); ????????mBinding.setUser(mUser); ????????mBinding.setPerson(new?Person()); ????} ????public?class?Person?{ ????????public?void?onClick(User?user)?{ ????????????Toast.makeText(MainActivity.this,?user.getFirstName(),?Toast.LENGTH_SHORT).show(); ????????} ????????public?void?onTextChanged(CharSequence?s,?int?start,?int?before,?int?count)?{ ????????????mUser.setFirstName(s.toString()); ????????????mBinding.setUser(mUser); ????????????//?s?就是EditText中輸入的值 ????????????//?使用Toast打印 ????????????Toast.makeText(MainActivity.this,?s.toString(),?Toast.LENGTH_SHORT).show(); ????????} ????} }<?xml?version="1.0"?encoding="utf-8"?> <layout?xmlns:android="http://schemas.android.com/apk/res/android"> ????<data> ????????<variable ????????????name="user" ????????????type="com.android.oz.databindingdemo.User"?/> ????????<!--記得這里需要將Person傳遞進來--> ????????<variable ????????????name="person" ????????????type="com.android.oz.databindingdemo.MainActivity.Person"?/> ????</data> ????<LinearLayout ????????android:layout_width="match_parent" ????????android:layout_height="match_parent" ????????android:orientation="vertical"> ????????<!--?綁定onTextChanged?--> ????????<!--?這里使用::是為了與.區分開,使用::能清楚的知道是調用方法?--> ????????<EditText ????????????android:onTextChanged="@{person::onTextChanged}" ????????????android:layout_width="match_parent" ????????????android:layout_height="wrap_content"?/> ????????<TextView ????????????android:onClick="@{()?->?person.onClick(user)}" ????????????android:layout_width="match_parent" ????????????android:layout_height="wrap_content" ????????????android:text="@{user.firstName}"?/> ????????<TextView ????????????android:layout_width="match_parent" ????????????android:layout_height="wrap_content" ????????????android:text="@{user.lastName}"?/> ????</LinearLayout> </layout>