java.lang.NumberFormatException?
java.lang.NumberFormatException?
我是 android 编程新手。
我在聊天应用程序中遇到问题。
当向任何用户发送消息时,用户消息存储在 Firebase 数据库中。但是当我尝试显示特定用户的所有聊天记录时,它给了我一个错误。
问题是java.lang.NumberFormatException: null
这是我的代码,其中出现错误:
@Override
public void onBindViewHolder(@NonNull MyHolder myHolder, int i) {
//get data
String message = chatList.get(i).getMessage();
String timestamp = chatList.get(i).getTimestamp();
//convert time stamp to dd/mm/yyyy hr:mm am/pm
Calendar cal = Calendar.getInstance(Locale.ENGLISH);
cal.setTimeInMillis(Long.parseLong(timestamp));
//cal.setTimeInMillis(Long.parseLong(timestamp));
String dateTime = android.text.format.DateFormat.format("dd/MM/yyyy hh:mm aa", cal).toString();
//set Data
myHolder.messageTv.setText(message);
myHolder.timeTv.setText(dateTime);
//msg delivered/seen
if (i == chatList.size()-1){
if (chatList.get(i).isSeen()){
myHolder.isSeenTv.setText("Seen");
}
else {
myHolder.isSeenTv.setText("Delivered");
}
}
else {
myHolder.isSeenTv.setVisibility(View.GONE);
}
}
enter image description here
你能post完整的异常堆栈跟踪吗?
假设您的时间戳为 null
,此行可能会导致它
Long.parseLong(timestamp)
使用try-catch
块来处理NumberFormatException
Calendar cal = Calendar.getInstance(Locale.ENGLISH);
try {
cal.setTimeInMillis(Long.parseLong(timestamp));
} catch(Exception ex) {
ex.printStackTrace();
}
String dateTime = android.text.format.DateFormat.format("dd/MM/yyyy hh:mm aa", cal).toString();
我是 android 编程新手。 我在聊天应用程序中遇到问题。 当向任何用户发送消息时,用户消息存储在 Firebase 数据库中。但是当我尝试显示特定用户的所有聊天记录时,它给了我一个错误。
问题是java.lang.NumberFormatException: null
这是我的代码,其中出现错误:
@Override
public void onBindViewHolder(@NonNull MyHolder myHolder, int i) {
//get data
String message = chatList.get(i).getMessage();
String timestamp = chatList.get(i).getTimestamp();
//convert time stamp to dd/mm/yyyy hr:mm am/pm
Calendar cal = Calendar.getInstance(Locale.ENGLISH);
cal.setTimeInMillis(Long.parseLong(timestamp));
//cal.setTimeInMillis(Long.parseLong(timestamp));
String dateTime = android.text.format.DateFormat.format("dd/MM/yyyy hh:mm aa", cal).toString();
//set Data
myHolder.messageTv.setText(message);
myHolder.timeTv.setText(dateTime);
//msg delivered/seen
if (i == chatList.size()-1){
if (chatList.get(i).isSeen()){
myHolder.isSeenTv.setText("Seen");
}
else {
myHolder.isSeenTv.setText("Delivered");
}
}
else {
myHolder.isSeenTv.setVisibility(View.GONE);
}
}
enter image description here
你能post完整的异常堆栈跟踪吗? 假设您的时间戳为 null
,此行可能会导致它Long.parseLong(timestamp)
使用try-catch
块来处理NumberFormatException
Calendar cal = Calendar.getInstance(Locale.ENGLISH);
try {
cal.setTimeInMillis(Long.parseLong(timestamp));
} catch(Exception ex) {
ex.printStackTrace();
}
String dateTime = android.text.format.DateFormat.format("dd/MM/yyyy hh:mm aa", cal).toString();