Я изучаю этот учебник, и у меня есть некоторые проблемы. Я смог запустить свое приложение и поделиться сообщениями с базой данных Firebase; однако я не мог их видеть. Но сейчас я получаю эту ошибку.
java.lang.RuntimeException: невозможно запустить действие. ComponentInfo {com.example.furka.findit / com.example.furka.findit.ChatActivity}: java.lang.RuntimeException: макет не может быть нулевым. Вызовите setLayout.
Это мой onClick viewListener кнопки отправки сообщения:
public void onClick(View view) {
EditText input = (EditText)findViewById(R.id.input);
// Read the input field and push a new instance
// of ChatMessage to the Firebase database
FirebaseDatabase.getInstance()
.getReference()
.push()
.setValue(new ChatMessage(input.getText().toString(),
FirebaseAuth.getInstance()
.getCurrentUser()
.getEmail())
);
input.setText("");
И это метод для просмотра.
private void displayChatMessages() {
ListView listOfMessages = (ListView)findViewById(R.id.list_of_messages);
FirebaseListOptions<ChatMessage> options = new FirebaseListOptions.Builder<ChatMessage>()
.setQuery(query, ChatMessage.class)
.build();
adapter = new FirebaseListAdapter<ChatMessage>(options) {
@Override
protected void populateView(View v, ChatMessage model, int position) {
// Get references to the views of message.xml
TextView messageText = (TextView)v.findViewById(R.id.message_text);
TextView messageUser = (TextView)v.findViewById(R.id.message_user);
TextView messageTime = (TextView)v.findViewById(R.id.message_time);
// Set their text
messageText.setText(model.getMessageText());
messageUser.setText(model.getMessageUser());
// Format the date before showing it
messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)",
model.getMessageTime()));
}
};
listOfMessages.setAdapter(adapter);
}