Android: обязательные свойства составного вида - PullRequest
0 голосов
/ 29 апреля 2019

(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

Пожалуйста, прочитайте мой обязательный код в этом вопросе

...