【问题标题】:setText in Navigation Drawer导航抽屉中的 setText
【发布时间】:2018-09-23 11:28:55
【问题描述】:

如何在导航抽屉的抽屉标题布局中设置要查看的文本?

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);

}

引起:java.lang.NullPointerException:尝试调用虚拟 空对象上的方法 'void android.widget.TextView.setText(int)' 参考..

【问题讨论】:

  • 您确定您的TextView 的ID 确实为username
  • @user3738870 是

标签: java android settext android-navigationview


【解决方案1】:

用这个来改变材质抽屉的文字

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); 

【讨论】:

    【解决方案2】:

    你可以试试这个:

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

    【讨论】:

    • @JavaOgreniyor 不客气,您能否点赞或接受我的回答,谢谢!
    【解决方案3】:
    TextView name = findViewById(R.id.username);
    

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

    所以,你应该先获取 NavigationHeader,然后再获取用户名
    例如

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多