Когда пользователь создает учетную запись, его данные должны отображаться в заголовке навигационного ящика (зеленое пространство).Я не могу заставить его отображать это на панели навигации - он работал только на самой странице активности.Когда я попытался установить текст в методе onCreate, он вызывает исключение nullPointerException, поэтому я поместил его в другой метод.Это мой код:
Класс регистрации:
public void onClick(View v) {
if (v.getId() == R.id.Bsignup) {
String username = ETusername.getText().toString();
String email = ETemail.getText().toString();
String password = ETpassword.getText().toString();
String confirmpassword = ETconfirmpassword.getText().toString();
if (ETusername.getError() == null && ETemail.getError() == null &&
ETpassword.getError() == null && ETconfirmpassword.getError() == null
&& db.checkExistingUser(username) == false) {
User user = new User(username, password, email);
db.addUser(user);
Log.i("Signup", "Confirmed login");
Log.i("Signup", username+" "+email);
Intent i = new Intent(Signup.this, Home.class);
i.putExtra("Username", username);
i.putExtra("Email", email);
startActivity(i);
}
}
Основная деятельность:
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
Log.i("Home", "Loading profile");
tvUsername = (TextView) findViewById(R.id.navUsername);
username = getIntent().getStringExtra("Username");
tvUsername.setText(username);
tvEmail = (TextView) findViewById(R.id.navUserEmail);
email = getIntent().getStringExtra("Email");
tvEmail.setText(email);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
nav_header_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@drawable/side_nav_bar"
android:gravity="bottom"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Light">
<ImageView
android:id="@+id/imageView"
android:layout_width="93dp"
android:layout_height="97dp"
android:contentDescription="@string/nav_header_desc"
android:paddingTop="@dimen/nav_header_vertical_spacing"
app:srcCompat="@drawable/dp_round" />
<TextView
android:id="@+id/navUsername"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
<TextView
android:id="@+id/navUserEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>