Ошибка преобразования findByID в @BindView при обновлении ButterKnife - PullRequest
0 голосов
/ 14 октября 2019

У меня есть проект от кого-то другого, но когда я его открыл, произошла ошибка. У Butterknife есть ошибка, она отображает: «error: can't find findById (View, int) notation», я знаю, что она была заменена на @BindView, я изменил findById на @BindView, но только параметры findById 2, в то время как @BindView имеет только 1. Как я могуконвертировать?

Это новый код:

@BindView(R.id.fab_subitem_image) ImageView image;
private void addActionItem(@NonNull LayoutInflater inflater, int index,
    @NonNull final FABAction item) {
    // Inflate & Configure item
    final View subItem = inflater.inflate(R.layout.fab_subitem, mItemContainer, false);

    image.setBackgroundColor(item.mBgColor);

Это старый код:

private void addActionItem(@NonNull LayoutInflater inflater, int index,
    @NonNull final FABAction item) {
    // Inflate & Configure item
    final View subItem = inflater.inflate(R.layout.fab_subitem, mItemContainer, false);
    ImageView image = ButterKnife.findById(subItem, R.id.fab_subitem_image); <--This is old code

    image.setBackgroundColor(item.mBgColor);

1 Ответ

0 голосов
/ 14 октября 2019

Вы должны указать ButterKnife создать привязки для объекта, который содержит @BindView аннотаций. Вы должны позвонить ButterKnife.bind(this, subItem) после инфляции:

@BindView(R.id.fab_subitem_image) ImageView image;

private Unbinder unbinder;

private void addActionItem(@NonNull LayoutInflater inflater, int index, @NonNull final FABAction item) {
    // Inflate & Configure item
    final View subItem = inflater.inflate(R.layout.fab_subitem, mItemContainer, false);
    // Generate bindings
    unbinder = ButterKnife.bind(this, subItem);

    image.setBackgroundColor(item.mBgColor);
    ...
}

...

@Override
public void onDestroyView(View view) {
    // Unbind when bindings are no longer needed eg. in onDestroyView of a Fragment
    unbinder.unbind()
}

См. документацию для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...