Как посмотреть в Android Studio, откуда сгенерированный код в файле BR? - PullRequest
0 голосов
/ 04 сентября 2018

Я ввожу новую кодовую базу и должен понять, как она работает. Есть файл BR, который генерируется автоматически. Я думаю, что это происходит из Библиотеки привязки данных. Эти BR-файлы содержат много значений, но я не вижу способа автоматического поиска области в коде, откуда указывается содержимое этого файла.

Когда у меня есть, например:

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

Как мне найти источник кода, который приводит к существующим переменным?

Ответы [ 3 ]

0 голосов
/ 12 сентября 2018

Это немного сложно найти. Вы можете щелкнуть правой кнопкой мыши на поле и выбрать «Найти использование», но это покажет вам только то, где оно используется, а не откуда оно. Поля в BR.java генерируются методами, отмеченными @Bindable Like

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

Что приведет к тому, что поле в файле BR.java будет выглядеть следующим образом:

public static final int someStringValue = 126;

Таким образом, чтобы найти источник в BR-файле, вы берете то, что находится в файле BR.java, добавляете «get» и затем ищете его. Сам, я бы, наверное, вместо этого @Bindable.

0 голосов
/ 18 сентября 2018

Я не вижу способа автоматического поиска области в коде из где указывается содержимое этого файла.

Прежде всего, BR - это файл автоматически сгенерированный , который не даст вам знать, откуда из сгенерированных полей. Так же, как вы не можете искать R полей, где они принадлежат.

Но обычно есть два типа полей, сгенерированных в BR файле.

  • 1-й - <variable, определенный в вашем макете.

    <variable
        name="model"
        type="sample.data.Model"/>
    
  • 2-е - @Bindable полей.

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

Итак, BR-файл выглядит так:

public class BR {
        public static final int _all = 0;
        public static final int model = 0;
        public static final int password = 1;
}

_all - это целое число по умолчанию, которое генерируется всегда.

0 голосов
/ 04 сентября 2018

Обычно сгенерированный код использует этот путь:

путь к проекту / приложению / сборке / сгенерированному / rs

Чтобы проверить это в Android studio, вы можете изменить вид структуры проекта от «Android» до «Project» и следуйте приведенному выше пути, чтобы увидеть сгенерированный Код.

...