首页 > 解决方案 > 在 Android Studio 的导航抽屉中更新个人资料图片和名称

问题描述

首先我想说的是,我使用活动而不是片段来实现导航抽屉。我面临的问题是如何从 Firestore 更新当前用户的个人资料图片和名称?

这是布局

布局图片

我创建了一个 Fragment 并将其与图片中提到的布局相关联。但是我如何在每个打开的活动上使用这个片段,以便每当显示导航抽屉时,这段代码就会运行并更新图片。

public class DrawerFragment extends Fragment {
    ImageView profilepic;
    TextView name;
    FirebaseAuth fAuth;
    FirebaseFirestore fStore;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable 
    ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.drawer_header, container, false);

        profilepic = view.findViewById(R.id.displayPic);
        name = view.findViewById(R.id.namE);
        fAuth = FirebaseAuth.getInstance();
        fStore = FirebaseFirestore.getInstance();

        DocumentReference documentReference = fStore.collection("Users").document(fAuth.getCurrentUser().getUid());
        documentReference.get()
                .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                    @Override
                    public void onSuccess(DocumentSnapshot snapshot) {
                        String Name = snapshot.getString("fName");
                        String profilePic = snapshot.getString("imageURL");
                        name.setText(Name);
                        Picasso.get().load(profilePic).into(profilepic);
                    }
                });

        return view;
    }
}

这就是我在活动之间导航的方式

public boolean onNavigationItemSelected(@NonNull MenuItem item) {

    switch (item.getItemId()) {
        case R.id.drawer_home:
     break;
        case R.id.drawer_onging:
        case R.id.drawer_history:
            startActivity(new Intent(DriverCreatePostActivity.this,DriverHistoryPost.class));
            break;
        case R.id.drawer_profile:

        case R.id.drawer_contact:

        case R.id.drawer_share:

        case R.id.drawer_privacy:

        case R.id.drawer_about:

        case R.id.drawer_logout:
    }
    drawer.closeDrawer(GravityCompat.START);
    return true;
}enter code here

标签: javaandroidgoogle-cloud-firestorenavigation-drawer

解决方案


推荐阅读