3 回答
TA贡献1802条经验 获得超10个赞
用户为空。检查 null 如下
if(user != null){
String username = user.getUsername();
Username.setText(username);
String email = user.getEmail();
Email.setHint(email);
String mobile = user.getMobile();
Mobile.setHint(mobile);
Boolean notifications = user.getNotifications();
Notifications.setChecked(notifications);
Boolean emails = user.getEmails();
Emails.setChecked(emails);
}
TA贡献1846条经验 获得超7个赞
NullPointerException 原因是,如果您在 null 对象上调用任何方法,那么它肯定会抛出此异常。
直接调用在运行时获取的对象上的方法是不正确的编码实践,除非您 100% 确定存在某个对象,即使该对象为空。因此,只有 NullPointerException 是未经检查的异常。
回答你的问题,
请确认您获得了正确的 userId 并且该 userId 是否存在于数据库中。
searchById(userId),
无法找到具有给定 userId 的对象,因此它会返回。您只需要在调用用户方法之前进行空检查
if(user!=null)
如果值高于条件为真,则执行操作,但这取决于您的业务需求。上述条件只会使您免于此异常,但如果在任何情况下您需要用户对象,请检查您正在获取的 userId 及其在数据库中的存在。
你正在检索
TA贡献1785条经验 获得超4个赞
当您看到此错误时,用户为空,因此您必须在调试模式下检查一些内容:
1.可能这个功能有一些bug:
LoginActivity.tuckBoxDB.tbDao().searchById(userID);
也许这个函数找不到 int extra 。检查启动活动是否通过了此额外操作,并检查您的密钥(sessionUser)是否在两者中相同:
getIntent().getIntExtra("sessionUser", 0)
添加回答
举报