【问题标题】:Updating TextView in NavigationView Header在 NavigationView 标头中更新 TextView
【发布时间】:2018-12-27 13:07:51
【问题描述】:

我有一个带有 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"
    />

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

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

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

这将使用当前用户的用户名更新该文本视图

【问题讨论】:

标签: android


【解决方案1】:

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

Java

 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" />

【讨论】:

【解决方案2】:

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

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

【讨论】:

  • 不能那样做。我无法从我的主 xml 访问我的标题 xml 中的元素
  • 您可以从“主要活动”访问元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多