DataBinding的綁定方式

之前一直有一個疑問:

活動中的綁定的方法是怎麼來的

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());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章