3 回答

TA貢獻1802條經(jīng)驗 獲得超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條經(jīng)驗 獲得超7個贊
NullPointerException 原因是,如果您在 null 對象上調(diào)用任何方法,那么它肯定會拋出此異常。
直接調(diào)用在運行時獲取的對象上的方法是不正確的編碼實踐,除非您 100% 確定存在某個對象,即使該對象為空。因此,只有 NullPointerException 是未經(jīng)檢查的異常。
回答你的問題,
請確認您獲得了正確的 userId 并且該 userId 是否存在于數(shù)據(jù)庫中。
searchById(userId),
無法找到具有給定 userId 的對象,因此它會返回。您只需要在調(diào)用用戶方法之前進行空檢查
if(user!=null)
如果值高于條件為真,則執(zhí)行操作,但這取決于您的業(yè)務(wù)需求。上述條件只會使您免于此異常,但如果在任何情況下您需要用戶對象,請檢查您正在獲取的 userId 及其在數(shù)據(jù)庫中的存在。
你正在檢索

TA貢獻1785條經(jīng)驗 獲得超4個贊
當(dāng)您看到此錯誤時,用戶為空,因此您必須在調(diào)試模式下檢查一些內(nèi)容:
1.可能這個功能有一些bug:
LoginActivity.tuckBoxDB.tbDao().searchById(userID);
也許這個函數(shù)找不到 int extra 。檢查啟動活動是否通過了此額外操作,并檢查您的密鑰(sessionUser)是否在兩者中相同:
getIntent().getIntExtra("sessionUser", 0)
添加回答
舉報