Как получить доступ к app: headerLayout (axml) внутри Activity? Xamarin Android - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть вопрос о том, как получить доступ к headerLayout. Поэтому я хочу вызвать переменную, содержащуюся в Layout boxheaderlayout.axml, чтобы ее можно было вставить в действие (переменную).

Это мой код, а также информация, которую я хочу знать.

Main.axml

<android.support.design.widget.NavigationView
            android:id="@+id/nav_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:menu="@menu/navmenu"
            app:headerLayout="@layout/headerdrawerlayout" /><!--this header-->
    </android.support.v4.widget.DrawerLayout>

drawerheaderlayout.axml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="178dp"
    android:orientation="vertical"
    android:weightSum="1"
    android:background="@drawable/imgBg">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="54dp"
        android:orientation="vertical"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true">
        <TextView
            android:id="@+id/callUsername"<!--I want to call this variable inside Activity-->
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:textColor="#ffffff"
            android:textSize="20dp"
            android:textStyle="bold"
            android:typeface="sans" />
</RelativeLayout>

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Вы можете получить NavigationView первым в MainActivity. Затем используйте метод GetHeaderView(), чтобы получить drawerheaderlayout. Наконец, используйте FindViewById(), чтобы получить текстовое представление.

Например:

        NavigationView navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
        navigationView.SetNavigationItemSelectedListener(this);
        View header = navigationView.GetHeaderView(0);
        /*View view=navigationView.inflateHeaderView(R.layout.nav_header_main);*/
        TextView name = (TextView)header.FindViewById(Resource.Id.callUsername);
0 голосов
/ 30 апреля 2018

Вот что я делаю: Во-первых, я создаю AppCompatActivity для макета выдвижного ящика, в основном упражнении оно ссылается на AppCompatActivity.

Активность DrawerLayout:

public class DrawerLayout : AppCompatActivity
{
TextView UserName;
protected override void OnCreate(Bundle savedInstanceState)
{
    base.OnCreate(savedInstanceState);
    SetContentView(Resource.Layout.drawerheaderlayout);
    UserName = FindViewById<TextView>(Resource.Id.callUsername) // here you call your username

}

}

Основная деятельность:

public class MainView : DrawerLayout
{
    base.OnCreate(savedInstanceState);
    FrameLayout contentFrameLayout = FindViewById<FrameLayout>(Resource.Id.content_frame);
    LayoutInflater.Inflate(Resource.Layout.Main, contentFrameLayout); // here I Inflate the main.axml
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...