listview在适配器更改后未显示消息

时间:2018-06-12 04:52:51

标签: android firebase-authentication firebaseui

我有ListView的重复适配器,但在此更改后,我无法在聊天应用程序中看到我的消息,

public class MainActivity extends AppCompatActivity {

private static int SIGN_IN_REQUEST_CODE = 1;
private FirebaseListAdapter<ChatMessage> adapter;
RelativeLayout activity_Main;
FloatingActionButton fab;


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId() == R.id.menu_sign_out)
    {
        AuthUI.getInstance().signOut(this).addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                Snackbar.make(activity_Main,"You have been signed out.", Snackbar.LENGTH_SHORT).show();
                finish();
            }
        });
    }
    return true;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu,menu);
    return true;
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == SIGN_IN_REQUEST_CODE)
    {
        if(resultCode == RESULT_OK)
        {
            Snackbar.make(activity_Main,"Successfully signed in.Welcome!", Snackbar.LENGTH_SHORT).show();
            displayChatMessage();
        }
        else{
            Snackbar.make(activity_Main,"We couldn't sign you in.Please try again later", Snackbar.LENGTH_SHORT).show();
            finish();
        }
    }

}



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    activity_Main = (RelativeLayout)findViewById(R.id.layoutmain);
    fab=(FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            EditText input =findViewById(R.id.input);
            FirebaseDatabase.getInstance().getReference().push().setValue(new ChatMessage(input.getText().toString(),
                    FirebaseAuth.getInstance().getCurrentUser().getEmail()));
            input.setText("");

        }
    });




    if(FirebaseAuth.getInstance().getCurrentUser()==null) {

        startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder().build(),SIGN_IN_REQUEST_CODE);

    }
    else{
        Snackbar.make(activity_Main,"Welcome "+FirebaseAuth.getInstance().getCurrentUser().getEmail(),Snackbar.LENGTH_SHORT).show();
        //Load content
        displayChatMessage();
    }
}
private void displayChatMessage() {
    ListView listOfMessage = (ListView)findViewById(R.id.list_of_message);
    Query query = FirebaseDatabase.getInstance().getReference().child("chats");
    FirebaseListOptions<ChatMessage> options =
            new FirebaseListOptions.Builder<ChatMessage>()
                    .setQuery(query, ChatMessage.class)
                    .setLayout(android.R.layout.simple_list_item_1)
                    .build();

    adapter = new FirebaseListAdapter<ChatMessage>(options)
    {
        @Override
        protected void populateView(View v, ChatMessage model, int position) {

            Log.i("Model", model.toString());
            TextView messageText, messageUser, messageTime;
            messageText = (TextView) v.findViewById(R.id.message_Text);
            messageUser = (TextView) v.findViewById(R.id.message_user);
            messageTime = (TextView) v.findViewById(R.id.message_time);

            messageText.setText(model.getMessageText());
            messageUser.setText(model.getMessageuser());
            messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)", model.getMessageTime()));

        }
    };
    listOfMessage.setAdapter(adapter);
}

@Override
protected void onStart() {
    super.onStart();
    adapter.startListening();
}


@Override
protected void onStop() {
    super.onStop();
    adapter.stopListening();

}

}

我复制后也将其添加到我的活动中

@Override
    protected void onStart() {
        super.onStart();
        adapter.startListening();
    }

0 个答案:

没有答案