I am developing MainContentPage in android studio in which i am working in Navigation View. My code is complete but i am getting Null Exception error in this line of code objectNavigationView.setNavigationItemSelectedListener(this); and in objectBottomNavigationView.setOnNavigationItemSelectedListener here is my complete java code
public class MainContentPage extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener
{
//Fragments Objects
private TextThoughts objectTextThoughts;
private ImageThoughts objectImageThoughts;
private Favorite objectFavorite;
//Java objects for XML
private NavigationView objectNavigationView;
private Toolbar objectToolBar;
private DrawerLayout objectDrawerLayout;
private ImageView header_backgroundProfile;
private CircleImageView header_ProfilePic;
TextView header_userName, header_user_email;
ProgressBar header_progressBar;
private BottomNavigationView objectBottomNavigationView;
//Firebase Veriables
FirebaseAuth objectFirebaseAuth;
FirebaseFirestore objectFirebaseFireStore;
DocumentReference objectDocumentReference;
//class Variables
private String CurrentUserEmail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_content_page);
objectTextThoughts = new TextThoughts();
objectImageThoughts=new ImageThoughts();
objectFavorite =new Favorite();
changeFragments(objectTextThoughts);
objectFirebaseFireStore =FirebaseFirestore.getInstance();
objectFirebaseAuth=FirebaseAuth.getInstance();
attachJavaObjectToXMLObjects();
setUpDrawerMenu();
getCurrentUserDetails();
objectNavigationView.setNavigationItemSelectedListener(this);
objectNavigationView.bringToFront();
objectBottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
try
{
switch(item.getItemId())
{
case R.id.text_thoughts:
changeFragments(objectTextThoughts);
return true;
case R.id.image_thoughts:
changeFragments(objectImageThoughts);
return true;
case R.id.favorite_thoughts:
changeFragments(objectFavorite);
return true;
default:
return false;
}
}
catch(Exception e)
{
Toast.makeText(MainContentPage.this, "MainContentPage:"+e.getMessage(), Toast.LENGTH_SHORT).show();
}
return false;
}
});
}
private void attachJavaObjectToXMLObjects()
{
try
{
objectToolBar.findViewById(R.id.toolBar);
objectDrawerLayout.findViewById(R.id.drawerLayout);
objectNavigationView.findViewById(R.id.navigationView);
objectBottomNavigationView=findViewById(R.id.bottomNavigationBar);
View headerXMLFile=objectNavigationView.getHeaderView(0);
header_backgroundProfile=headerXMLFile.findViewById(R.id.headerProfile_picBack);
header_ProfilePic=headerXMLFile.findViewById(R.id.headerProfilePic);
header_userName=headerXMLFile.findViewById(R.id.header_UserName);
header_user_email=headerXMLFile.findViewById(R.id.header_UserEmail);
header_progressBar=headerXMLFile.findViewById(R.id.header_progressBar);
}
catch(Exception e)
{
Toast.makeText(this, "MainContentPage:"+e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
private void changeFragments(Fragment objectFragment)
{
try
{
FragmentTransaction objectFragmentTransaction = getSupportFragmentManager().beginTransaction();
objectFragmentTransaction.replace(R.id.container,objectFragment);
objectFragmentTransaction.commit();
}
catch(Exception e)
{
Toast.makeText(this, "MainContentPage:"+e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
private void setUpDrawerMenu()
{
try
{
ActionBarDrawerToggle objectActionBarDrawerToggle=new ActionBarDrawerToggle(this,
objectDrawerLayout,
objectToolBar,
R.string.open,
R.string.close);
objectDrawerLayout.addDrawerListener(objectActionBarDrawerToggle);
objectActionBarDrawerToggle.syncState();
}
catch(Exception e)
{
Toast.makeText(this, "MainContentPage:"+e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
try
{
switch (item.getItemId())
{
case R.id.item_profile:
Toast.makeText(this, "Profile is clicked!", Toast.LENGTH_SHORT).show();
return true;
case R.id.item_notifications:
Toast.makeText(this, "Notifications are clicked!", Toast.LENGTH_SHORT).show();
return true;
case R.id.item_setting:
Toast.makeText(this, "Setting is clicked!", Toast.LENGTH_SHORT).show();
return true;
case R.id.text_thoughts:
Toast.makeText(this, "Text Thoughts are clicked!", Toast.LENGTH_SHORT).show();
return true;
case R.id.favorite:
Toast.makeText(this, "Favorite is clicked!", Toast.LENGTH_SHORT).show();
return true;
case R.id.text_signout:
signOutUser();
return true;
default:
return false;
}
}
catch (Exception e)
{
Toast.makeText(this, "MainContentPage:"+e.getMessage(), Toast.LENGTH_SHORT).show();
}
return false;
}
private void getCurrentUserDetails()
{
try {
CurrentUserEmail = getCurrentLoggedInUser();
if (CurrentUserEmail.equals("No user is logged in"))
{
Toast.makeText(this, "No user is logged in", Toast.LENGTH_SHORT).show();
startActivity(new Intent(this, LoginPage.class));
finish();
}
else
{
header_progressBar.setVisibility(View.VISIBLE);
objectDocumentReference=objectFirebaseFireStore.collection("UserProfileData")
.document(CurrentUserEmail);
objectDocumentReference.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
header_userName.setText(documentSnapshot.getString("username"));
header_userName.setAllCaps(true);
header_user_email.setText(CurrentUserEmail);
String linkOfProfileImage=documentSnapshot.getString("profileimageurl");
Glide.with(MainContentPage.this).load(linkOfProfileImage).into(header_ProfilePic);
Glide.with(MainContentPage.this).load(linkOfProfileImage).into(header_backgroundProfile);
header_progressBar.setVisibility(View.INVISIBLE);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MainContentPage.this, "Loading User Details", Toast.LENGTH_SHORT).show();
}
});
}
}
catch (Exception e)
{
Toast.makeText(this, "MainContentPage:"+e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
private String getCurrentLoggedInUser()
{
try
{
if(objectFirebaseAuth!=null)
{
return objectFirebaseAuth.getCurrentUser().getEmail().toString();
}
else
{
return "No user is logged in";
}
}
catch (Exception e)
{
Toast.makeText(this, "MainContentPage:"+e.getMessage(), Toast.LENGTH_SHORT).show();
return null;
}
}
private void signOutUser()
{
try
{
if(objectFirebaseAuth!=null)
{
objectFirebaseAuth.signOut();
Toast.makeText(this, "You have succeessfully been logged out", Toast.LENGTH_SHORT).show();
startActivity(new Intent(this,LoginPage.class));
closeDrawer();
finish();
}
}
catch(Exception e)
{
Toast.makeText(this, "MainContentPage:"+e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
private void openDrawer()
{
try
{
objectDrawerLayout.openDrawer(GravityCompat.START);
}
catch(Exception e)
{
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
}
}
private void closeDrawer()
{
try
{
objectDrawerLayout.closeDrawer(GravityCompat.START);
}
catch(Exception e)
{
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
}
}
}
and the error which i am getting is
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.material.bottomnavigation.BottomNavigationView.setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener)' on a null object reference at Activities.MainContentPage.onCreate(MainContentPage.java:83)
But i am also getting an NullPointerException in this line objectNavigationView.setNavigationItemSelectedListener(this); present onCreate Method