导航抽屉中的数据获取(Android)

时间:2017-12-25 11:20:05

标签: android firebase firebase-realtime-database

我正在尝试从firebase数据库中获取登录用户的名称,并尝试将导航抽屉的标题放在android的默认图像下方。 但是当我尝试这样做时,应用程序崩溃并且活动启动时。我试过了 在简单的textView中查找名称它在活动中工作,但当我尝试更新导航标题中的名称时,它会失败并崩溃。如何做到这一点。

myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            String name = (String) dataSnapshot.child("users").child(userID).child("name").getValue();

            outputName.setText(name);

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

这是我获取名称的代码。请注意,如果我尝试烘焙它的名称,但标题内的值不会更新,通常会导致应用程序崩溃。

<de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/userProfileImage"
        android:layout_width="100dp"
        app:civ_border_width="4dp"
        app:civ_border_color="#fff"
        android:layout_height="100dp"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:layout_centerHorizontal="true"
        android:src="@drawable/profile_default_image"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:text="App User"
        android:id="@+id/current"
        android:layout_below="@+id/userProfileImage"
        android:textAlignment="center"/>

这是我的xml代码。

enter image description here

我想用用户名更新带圆圈的区域。

1 个答案:

答案 0 :(得分:1)

由于你的textview为null,你可以像下面那样投射textview

View header=navigationView.getHeaderView(0);
outputName = (TextView)header.findViewById(R.id.current);