在NavigationView标题中更新TextView

时间:2015-12-05 22:30:24

标签: android

我有一个带有NavigationView的activity_main.xml:

<android.support.design.widget.NavigationView
    android:id="@+id/nav_drawer"
    android:layout_width="320dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:menu="@menu/menu_drawer"
    app:headerLayout="@layout/header"
    app:itemIconTint="@color/colorAccent"
    />

我有一个标题布局,那里有一个textview。我想知道如何访问该textview?我的主要活动中的代码将更新该textview,但我不确定如何访问该textview。 header.xml不是活动的一部分。

在我的主要活动中,我有这段代码:

public void checkCurrentUser() {
    ParseUser user = ParseUser.getCurrentUser();
    if (user != null) {
        nameOfCurrentUser.setText(user.getUsername());
    }
}

将使用当前用户的用户名

更新该textview

2 个答案:

答案 0 :(得分:3)

您必须获取视图对象并找到元素

爪哇

 View headerLayout = navigationView.getHeaderView(0);
    useremail = (TextView) headerLayout.findViewById(R.id.tv_useremail);

XML

<android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_home"
        app:menu="@menu/activity_home_drawer" />

答案 1 :(得分:0)

标头由xml调用。 所以你可以简单地使用:

TextView nameOfCurrentUser = (TextView) findViewById(R.id.YOURTEXTVIEWINHEADER);nameOfCurrentUser.setText(user.getUsername());