导航抽屉中的 setText

setText in Navigation Drawer

如何将文本设置为从导航抽屉中的抽屉 header 布局查看?

protected void onCreate(Bundle savedInstanceState) {

[...]

 NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
 navigationView.setNavigationItemSelectedListener(this);
 TextView name = findViewById(R.id.username);
 name.setText(R.string.af_anasayfa_af_butonu);

}

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(int)' on a null object reference ..

你可以试试这个:

TextView name = (TextView) navigationView.getHeaderView(0).findViewById(R.id.username);
TextView name = findViewById(R.id.username);

这是错误的,因为用户名在 navigationHeader 中,而不是在视图中

所以,您应该获取 NavigationHeader,然后获取用户名
例如

TextView name = navigationView.getHeaderView(0).findViewById(R.id.username);

使用它来更改 material 抽屉

的文本
navigationView.getMenu().getItem(0).setTitle("any text");

navigationView.getMenu().findItem(R.id.nav_calculator).setTitle("xxx");

其次你获取字符串的方法也不对正确的方法是

String s= getResources().getString(R.string.appbar_scrolling_view_behavior);