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();