Я хочу, чтобы, когда пользователь отправлял или получал изображения, он мог щелкнуть изображение, а затем просмотреть изображение в другом действии. Поэтому я добавил слушателя щелчка к изображению в моем MessageAdapter.java
, как это
void bind(Messages message) {
String user_id = message.getFrom();
String message_type = message.getType();
if (message_type.equals("text")) {
messageText.setText(message.getMessage());
// Format the stored timestamp into a readable String using method.
timeText.setText(DateUtils.formatDateTime(message.getTime()));
mSentImage.setVisibility(View.INVISIBLE);
}else {
messageText.setVisibility(View.INVISIBLE);
Picasso.with(mSentImage.getContext()).load(message.getMessage()).networkPolicy(NetworkPolicy.OFFLINE).into(mSentImage);
mSentImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(view.getContext(), MessageViewerActivity.class);
intent.putExtra("message_id", user_id); //i don't know the right value to pass here
view.getContext().startActivity(intent);
}
});
}
Моя цель состояла в том, чтобы получить идентификатор сообщения, затем извлечь его в следующем упражнении и сослаться на него в моей базе данных и загрузить значение, которое должно быть изображением, в представление изображения с этим кодом.
final String user_id = getIntent().getStringExtra("message_id");
msgImage = findViewById(R.id.MsgImageView);
mAuth = FirebaseAuth.getInstance();
mRootRef = FirebaseDatabase.getInstance().getReference();
mCurrentUserId = mAuth.getCurrentUser().getUid();
DatabaseReference user_message_push = mRootRef.child("messages").child(mCurrentUserId).child(user_id);
user_message_push.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String type = dataSnapshot.child("type").getValue().toString(); // this line returns null
String image = dataSnapshot.child("message").getValue().toString();
if (type.equals("image")){
Picasso.with(MessageViewerActivity.this).load(image).into(msgImage);
}else {
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
Я не нашел ничего об этом в интернете, и я не знаю, правильно ли я это искал. Код выше был все из моей головы, и я все еще новичок в Android. Ваша помощь высоко ценится.