#android #firebase
#Android #firebase
Вопрос:
У меня мои пользователи отображаются в массиве, и когда я нажимаю на элемент в массиве, я хочу, чтобы он привел меня к новому действию и отображал информацию об определенном элементе (пользователях) в текстовом представлении. У меня работает имя, но отображаемая биография — это биография зарегистрированных пользователей. Кто-нибудь может предложить решение?
Смотрите Код:
1-е действие:
flingContainer.setOnItemClickListener(новый SwipeFlingAdapterView.OnItemClickListener() { @Override
public void onItemClicked(int itemPosition, Object dataObject) {
Toast.makeText(SwipeActivity.this, "clicked", Toast.LENGTH_SHORT).show();
cards UserObject = (cards) dataObject;
if(userType.equals("Dog Walker")){
Intent i = new Intent(getApplicationContext(), ViewDogProfile.class);
i.putExtra("UserObject", UserObject);
startActivity(i);}
if(userType.equals("Dog Owner")){
Intent i = new Intent(getApplicationContext(), ViewWalkerProfile.class);
i.putExtra("UserObject", UserObject);
startActivity(i);}
2nd activity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_walker_profile);
Intent i = getIntent();
cards mUserObject = (cards)i.getSerializableExtra("UserObject");
mName = findViewById(R.id.tvName);
mBio = findViewById(R.id.tvBio);
mImage = findViewById(R.id.imageZoom);
mName.setText(mUserObject.getFname());
if(!mUserObject.getProfileImageUrl().equals("default"))
Glide.with(getApplicationContext()).load(mUserObject.getProfileImageUrl()).into(mImage);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String userid = user.getUid();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
reference.child(userid).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists() amp;amp; dataSnapshot.getChildrenCount() > 0) {
Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
if (map.get("bio") != null) {
bio = map.get("bio").toString();
mBio.setText(bio);
}
}
Комментарии:
1. Что именно в этом коде работает не так, как вы ожидаете? Расскажите нам, что не так с общим кодом. У вас есть какие-либо ошибки?
2. Привет, Алекс, итак, на данный момент у меня есть пользователь, отображаемый в массиве с его именем и изображением профиля, и я передаю его в новое действие. Затем я хочу получить данные о пользователях из firebase, но я не уверен, как вызвать данные о пользователях из firebase, поскольку этот пользователь не вошел в систему. Я не уверен, как настроить ссылку на базу данных для массива, когда в нем несколько пользователей, все, кто не вошел в систему. Итак, я хочу, чтобы сведения о конкретных пользователях, которые отображаются в массиве в текущее время, передавались в другое действие.
3. Пожалуйста, отредактируйте свой вопрос и добавьте структуру своей базы данных в виде файла JSON или, по крайней мере, скриншота и укажите точные данные, которые вы хотите получить.