(P.S. Я новичок в разработке для Android, так что да, я могу использовать несколько глупых терминов ).
Итак, у вас есть пустой проект Xamarin.Android (C #). Я уверен, что любой Java-разработчик также может помочь мне в этом случае.
В любом случае, поэтому у меня есть файл xml
, внутри него есть LinearLayout
ViewGroup, и у него есть вложенный TextView
. Выглядит примерно так (кстати, xml-файл называется custom_View.xml
:
<LinearLayout....
.....
.....>
<TextView
android:id="@+id/TextView1"
...../>
</LinearLayout>
Фоновый класс, который я создал для этого пользовательского представления , наследует (или extends
в словах Java) класс LinearLayout
. Внутри его конструктора я вызываю метод, который надувает представление из файла xml
.
Это выглядит так:
public TestView(Context context) : base(context)
{
Initialize(context);
}
private void Initialize(Context ctx)
{
//Inflating the layout
mContext = ctx;
var inflatorService = (LayoutInflater)ctx.GetSystemService(Context.LayoutInflaterService);
View v = inflatorService.Inflate(Resource.Layout.custom_View, this, false);
this.AddView(v);
TextView tv = v.FindViewById<TextView>(Resource.Id.TextView1);
}
Теперь обратите внимание, что я пытаюсь сослаться на TextView
из XML-файла в коде позади.
Мой основной вопрос: где я могу связать его свойства? Как, например, если я хочу связать свойство Text
TextView
, в какой метод я должен поместить коды? (Я знаю, как связать свойства, но не публикую здесь коды, так как они не имеют значения.)
Я просмотрел другие посты на SO, но я не могу найти какой метод мне переопределить и связать свойства там? Я пытался связать свойства в методе Initialize
, но он выдает ошибку, которая в основном означает, что я пытаюсь связать свойство до создания представления?
Так, какой метод я должен переопределить? Есть ли какой-нибудь эквивалентный метод OnViewCreated
в классе LinearLayout
/ ViewGroup
?
EDIT
Пожалуйста, прочитайте мой обязательный код в этом вопросе