【问题标题】:How to reference a TextView in a separate layout file?如何在单独的布局文件中引用 TextView?
【发布时间】:2019-07-13 04:11:11
【问题描述】:

我已经构建了一个由3个xml文件组成的导航活动,即

  • home_activity.xml

  • nav_header.xml

  • drawer_menu.xml

home_activity.xml 将这些组合在一起,并在 HomeActivity.java 中设置为内容视图。

现在,我正在以编程方式尝试在 nav_header.xml 文件中设置 TextView 的文本,但最终出现空指针异常。我知道为什么,但不太清楚如何克服这个问题。一个人如何引用原始 TextView 而不是它的副本,因为它是膨胀和添加它的结果。

附言。我有 2 周的 Android 经验,

提前致谢

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.home_activity);


  Toolbar toolbar = findViewById(R.id.toolbar);
  setSupportActionBar(toolbar);
  drawer = findViewById(R.id.drawer_layout);
  ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, 
  toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
  drawer.addDrawerListener(toggle);
  toggle.syncState();


  View nav_header = getLayoutInflater()
                    .inflate(findViewById(R.id.nav_header), null);

  TextView text_username = nav_header.findViewById(R.id.text_username);
  text_username.setText("There you go");

}

【问题讨论】:

    标签: android-studio android-layout layout-inflater


    【解决方案1】:

    于是我找到了解决办法:

    NavigationView navigationView = findViewById(R.id.nav_view);
    
    View navigationHeader = navigationView.getHeaderView(0);
    
    textUsername = navigationHeader.findViewById(R.id.text_username);
    
    textUsername.setText("There you go");
    

    【讨论】:

      猜你喜欢
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 2015-02-26
      • 2020-02-03
      相关资源
      最近更新 更多