之前一直有一個疑問:
活動中的綁定的方法是怎麼來的
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ActivityMainBinding這個類根據佈局文件名生成(id+Binding)
ActivityMainBinding viewDataBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
UserBean userBean = new UserBean();
userBean.setUserName("姜濤");
// setUser這個方法根據Variable標籤的name屬性自動生成
viewDataBinding.setUser(userBean);
}
}
所有教程都在說,使用databinding的方式是:
1、用ActivityMainBinding來綁定活動和控件
2、然後對實體類進行實體化,
3、根據XML中使用的名稱,來使用set方法:setUser(XML代碼如下)
<data>
<!--導入類-->
<import type="com.liangfeizc.databindingsamples.basic.User" />
<!--因爲User已經導入, 所以可以簡寫類名-->
<variable name="user" type="User" />
</data>
那這個AcitivityMainBinding又不能用在其他的非主活動的活動中。該怎麼用呢?
參考答案:https://stackoverflow.com/questions/35883452/cant-resolve-android-databinding-class
結論:這個綁定方法是根據你XML中的名稱來的
Ps.
綁定activity和界面的另一種寫法:
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());