有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java文本视图。setText()空指针异常

我当前在试图在ActivityOnCreate方法中编辑TextView的文本时遇到了一个问题。据我所知,在试图更改文本之前必须调用setContentView,但是我仍然有这个问题

以下是相关代码:

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

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

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

    userEmailtext = (TextView) findViewById(R.id.emailText);
    mAuth = FirebaseAuth.getInstance();
    mUser = mAuth.getCurrentUser();
    userEmailtext.setText("This Does Not Work");
}

这个Activity包括Android Studio默认滑动菜单。此setText的目的是更改滑动菜单的电子邮件地址文本。我相信问题可能在于滑动菜单是另一个布局文件的一部分,这意味着没有“emailText”文本视图指向null pointer exception,但是我仍然不确定如何纠正这一问题

感谢您的帮助


共 (2) 个答案

  1. # 1 楼答案

    您应该从NavigationView初始化TextView安装。就你而言:

    userEmailtext = (TextView) navigationView.getHeaderView(0).findViewById(R.id.emailText);
    
  2. # 2 楼答案

    这取决于R.id.emailText组件的位置

    如果它直接在R.layout.activity_dash_board中,那么代码应该可以工作。 如果它在R.id.nav_视图中,您应该通过navigationView.findViewById(R.id.emailText)访问它