java - 在 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