Я разрабатываю новое приложение, но у меня возникла проблема;я не знаю, как правильно использовать фрагменты в моем приложении.
Я создаю приложение с помощью Facebook Auth и Firebase Auth, у меня все хорошо, но у меня проблема с фрагментами нижней навигации;я хочу показать информацию Facebook (ранее полученную с помощью Firebase) во фрагменте профиля, но не знаю как. И, кроме того, информация пользователя не скрывается, когда я нажимаю на другие фрагменты в нижней части навигации.
Главный экран (он перенаправляет на это после входа в Facebook facebook успешно)
private ImageView photoImageView;
private BottomNavigationView bottomNavigationView;
private TextView nameTextView;
private TextView emailTextView;
private TextView idTextView;
private ProfileTracker profileTracker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.persona_inicio);
photoImageView = (ImageView) findViewById(R.id.photoImageView);
nameTextView = (TextView) findViewById(R.id.nameTextView);
emailTextView = (TextView) findViewById(R.id.emailTextView);
idTextView = (TextView) findViewById(R.id.uidTextView);
final Fragment searchFragment = new search_fragment();
final Fragment discoverFragment = new fragment_discover();
final Fragment pblkFragment = new fragment_PBLK();
final Fragment profileFragment = new ProfileFragment();
final Fragment ajustesFragment = new fragment_ajustes();
if (savedInstanceState == null) {
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, searchFragment).commit();
}
bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottomNav);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
FragmentManager fragmentManager = getSupportFragmentManager();
if (item.getItemId() == R.id.Searchh) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, searchFragment).commit();
} else if (item.getItemId() == R.id.discover) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, discoverFragment).commit();
} else if (item.getItemId() == R.id.PBLK) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, pblkFragment).commit();
} else if (item.getItemId() == R.id.Profile) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, profileFragment).commit();
} else if (item.getItemId() == R.id.ajustes) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, ajustesFragment).commit();
}
return true;
}
});
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
profileTracker = new ProfileTracker() {
@Override
protected void onCurrentProfileChanged(Profile oldProfile, Profile currentProfile) {
if (currentProfile != null) {
displayProfileInfo(currentProfile);
}
}
};
if (AccessToken.getCurrentAccessToken() == null) {
goLoginScreen();
} else {
requestEmail(AccessToken.getCurrentAccessToken());
Profile profile = Profile.getCurrentProfile();
if (profile != null) {
displayProfileInfo(profile);
} else {
Profile.fetchProfileForCurrentAccessToken();
}
}
}
private void requestEmail(AccessToken currentAccessToken) {
GraphRequest request = GraphRequest.newMeRequest(currentAccessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
if (response.getError() != null) {
Toast.makeText(getApplicationContext(), response.getError().getErrorMessage(), Toast.LENGTH_LONG).show();
return;
}
try {
String email = object.getString("email");
setEmail(email);
} catch (JSONException e) {
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id, first_name, last_name, email, gender, birthday, location");
request.setParameters(parameters);
request.executeAsync();
}
private void setEmail(String email) {
emailTextView.setText(email);
}
private void goLoginScreen() {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
public void logout(View view) {
FirebaseAuth.getInstance().signOut();
LoginManager.getInstance().logOut();
goLoginScreen();
}
private void displayProfileInfo(Profile profile) {
String id = profile.getId();
String name = profile.getName();
String photoUrl = profile.getProfilePictureUri(100, 100).toString();
nameTextView.setText(name);
idTextView.setText(id);
Glide.with(getApplicationContext())
.load(photoUrl)
.into(photoImageView);
}
@Override
protected void onDestroy() {
super.onDestroy();
profileTracker.stopTracking();
}
![this is how my app looks like](https://i.stack.imgur.com/HOP39.jpg)