我如何在Android Studio中查看BR文件中生成的代码的来源?

时间:2018-09-04 15:15:39

标签: android android-databinding

我要输入新的代码库,必须了解它的工作方式。有一个自动生成的BR文件。我认为它来自数据绑定库。该BR文件包含很多值,但是我看不到自动从指定该文件内容的代码中搜索区域的方法。

举例来说:

    public static final int currentDate = 35;
    public static final int currentEmail = 36;

如何查找导致存在这些变量的代码的起源?

3 个答案:

答案 0 :(得分:1)

  

我看不到自动从以下位置搜索代码中的区域的方法   指定文件内容的位置。

首先, BR 文件是自动生成的,它不会让您知道生成字段的位置。就像您无法搜索它们所属的 R 字段一样。

但是 BR 文件中通常会生成两种类型的字段。

  • 第一个是languages students Percentage ----------------------------------- French 734 24,46 Afrikaans 93 3,12 Greek 117 3,9 German 55 1,83 Armenian 160 5,33 Malaysian 5 0,16 Danish 15 0,5 American 5 0,16 Swedish 24 0,8 Bulgarian 1043 34,76 在您的布局中定义的。

    <variable
  • 2nd是<variable name="model" type="sample.data.Model"/> 字段。

    @Bindable

BR文件看起来像

@Bindable
public String getPassword() {
    return password;
}

public class BR { public static final int _all = 0; public static final int model = 0; public static final int password = 1; } 是一些始终生成的默认整数。

答案 1 :(得分:0)

通常生成的代码依赖于以下路径:

项目/应用/构建/生成的/ rs的路径

  

要在Android Studio中进行检查,可以更改项目结构视图   从“ Android”到“项目”,然后按照上述路径查看生成的   代码。

答案 2 :(得分:0)

很难找到。您可以右键单击一个字段并选择“查找用法”,但这只会向您显示它的使用位置,而不是它的起源。 BR.java中的字段是通过标有protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { //Populate BankName for DropDown List MSAccessConnection dropdown = new MSAccessConnection(); DataSet output = dropdown.PopulateDropdown("SELECT distinct([Bank]) FROM [BankDetails]"); ddlBankName.DataTextField = output.Tables[0].Columns["Bank"].ToString(); ddlBankName.DataValueField = output.Tables[0].Columns["Bank"].ToString(); ddlBankName.DataSource = output.Tables[0]; ddlBankName.DataBind(); ddlBankName.Items.Insert(0, new ListItem("Select", "All")); } } Like

的方法生成的
@Bindable

这将在BR.java文件中产生一个如下所示的字段:

@Bindable
public String getSomeStringValue() {
    return "Some arbitrary string.";
}

因此,要找到BR文件中某些内容的源头,请先将BR.java文件中的内容放入“ get”中,然后对其进行搜索。我本人可能会搜索public static final int someStringValue = 126;