Это должен быть идентификатор или ссылка на представление - не может быть нарисовано, либо цветом, либо любым другим значением.
При указании атрибута для пользовательского представления в файле attrs.xml
дляидентификатор, все, что вам нужно, это тип reference
.
макет с указанным идентификатором должен существовать внутри текущего XML-файла.
Красное предупреждениевы видите в Android Studio при вводе неверного идентификатора предупреждение lint .Если идентификатор существует, но не в файле макета, он все равно будет скомпилирован.
Если вы хотите добиться того же самого для своего пользовательского представления, вам, вероятно, нужно добавить собственное правило lint .
Я должен иметь возможность получить ссылку на это представление и передать его другим методам.
Не совсем уверен, что вы 'повторяюПосле того, как вы надули пользовательское представление и получили значения из атрибутов XML, у вас должна быть ссылка на идентификатор, которую вы затем можете использовать в пользовательском представлении, чтобы сделать findViewById
.Если это не отвечает на ваш вопрос, уточните.
РЕДАКТИРОВАТЬ: Пример кода, внутри вашего конструктора пользовательского представления:
mIdReference = a.getResourceId(R.styleable.MyCustomView_my_view, 0)
if (mIdReference != 0) {
View subView = findViewById(mIdReference)
}
Надеюсь, это поможет!