TextView.setText() 空指针异常
TextView.setText() Null Pointer Exception
我目前在尝试在 Activity
的 OnCreate
方法中编辑 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" textview 导致 null pointer exception
,但是我仍然不确定这将如何纠正。
感谢任何帮助。
这取决于您的 R.id.emailText
组件在哪里。
如果直接在您的 R.layout.activity_dash_board
中,代码应该可以工作。
如果它在 R.id.nav_view 中,您应该通过 navigationView.findViewById(R.id.emailText)
到达它
您应该从 NavigationView 初始化您的 TextView 实例。你的情况:
userEmailtext = (TextView) navigationView.getHeaderView(0).findViewById(R.id.emailText);
我目前在尝试在 Activity
的 OnCreate
方法中编辑 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" textview 导致 null pointer exception
,但是我仍然不确定这将如何纠正。
感谢任何帮助。
这取决于您的 R.id.emailText
组件在哪里。
如果直接在您的 R.layout.activity_dash_board
中,代码应该可以工作。
如果它在 R.id.nav_view 中,您应该通过 navigationView.findViewById(R.id.emailText)
您应该从 NavigationView 初始化您的 TextView 实例。你的情况:
userEmailtext = (TextView) navigationView.getHeaderView(0).findViewById(R.id.emailText);