Я пытаюсь восстановить данные из базы данных (Firebase) и назначить эти данные пользовательской странице, точно в заголовке навигационной панели.
Я создал заголовок XML и включил заголовок в Activity_main, где я создал блок навигации
В шапке у меня видение картинок и два textview.
Код вида деятельности:
<include
android:id="@+id/main_page_toolbar"
layout="@layout/app_bar_layout" />
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:openDrawer="end">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/AlertDialog.AppCompat.Light" />
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/colorPrimary"
app:headerLayout="@layout/nav_header"
app:itemIconTint="@color/colorAccent"
app:itemTextColor="@color/colorAccent"
app:menu="@menu/main_menu" />
</android.support.v4.widget.DrawerLayout>
Теперь для Java я создал класс, в котором я восстанавливаю пользовательские данные из базы данных
mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();
String current_uid = mCurrentUser.getUid();
mUserData = FirebaseDatabase.getInstance().getReference().child("User").child(current_uid);
mUserData.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
name = dataSnapshot.child("name").getValue().toString();
image = dataSnapshot.child("image").getValue().toString();
status = dataSnapshot.child("status").getValue().toString();
thumb_image = dataSnapshot.child("thumb_image").getValue().toString();
}
Итак, в основном упражнении я хочу назначить изображение, имя пользователя и статус заголовку навигации.
//NavigationView
drawer = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
UserData userData = new UserData();(ImageView)navigationView.findViewById(R.id.imageViewUserImage);
TextView nav_userName = (TextView)navigationView.findViewById(R.id.textViewUsername);
TextView nav_userStatus = (TextView)navigationView.findViewById(R.id.textViewUserStatus);
nav_userName.setText(userData.name);
nav_userStatus.setText(userData.status);
В результате у меня произошел сбой приложения при запуске приложения. Я не знаю, является ли проблема, которую я использую, чтобы получить изображение или текстовое представление в заголовке, проблемой или чем-то еще.
Это мое первое приложение, мой код немного «грязный», поэтому я не включил здесь полный код.