0

In my app I have the following navigationview.

my app

So when the user click the menu item Καλώς ήρθες(meaning welcome in Greek),I want the this to be shown in the toolbar. This is my code for the navigationview.

public class Welcome extends AppCompatActivity {
private NavigationView navigationView;
private DrawerLayout drawerLayout;
private SessionManager session;
Toolbar toolbar;
private int mIconSize;
private String username;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_welcome);

    session = new SessionManager(getApplicationContext());



    SharedPreferences userName = PreferenceManager.getDefaultSharedPreferences(this);
    //UserId = userName.getString("id","");
    username = userName.getString("user_name", "");



    toolbar = (Toolbar)findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);

    if (savedInstanceState == null) {
        //Restore the fragment's instance and geo coordinates!
        //homeFragment = (FragmentHome) getSupportFragmentManager().getFragment(savedInstanceState, "mContent");
        setSelected(R.id.welcome);
    }else{
        //profileFragment = (FragmentProfile) fm2.findFragmentByTag(PROFILE_FRAGMENT);

    }
    ActionBarDrawerToggle adt = new ActionBarDrawerToggle(this,drawerLayout,toolbar,
            R.string.open_drawer,R.string.close_drawer){
        @Override
        public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView);
        }

        @Override
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
        }
    };

    drawerLayout.addDrawerListener(adt);
    adt.syncState();
    navigationView = (NavigationView)findViewById(R.id.navigation_view);
    navigationView.setBackgroundColor(getResources().getColor(R.color.navigation_bg_color));
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(MenuItem item) {
            drawerLayout.closeDrawers();
            boolean result = setSelected(item.getItemId());
            return result;
        }
    });

    View v = navigationView.getHeaderView(0);
    TextView t = (TextView)v.findViewById(R.id.username);
    t.setText(username);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.log_out, menu);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.log_out:

            logoutUser();
            return true;
    }
    return super.onOptionsItemSelected(item);
}
private void logoutUser() {
    session.setLogin(false);

    // Launching the login activity
    Intent intent = new Intent(Welcome.this, MainActivity.class);
    startActivity(intent);
    finish();
}
public boolean setSelected(int selected) {
    switch (selected){
        case R.id.welcome:
            WelcomeFragment welcomeFragment = new WelcomeFragment();
            FragmentManager fm1 = getSupportFragmentManager();
            FragmentTransaction fragmentTra1 = fm1.beginTransaction();
            fragmentTra1.replace(R.id.content,welcomeFragment);
            //fragmentTra1.addToBackStack("added");

            fragmentTra1.commit();
        return true;
        case R.id.general:
            GeneralFragment generalFragment= new GeneralFragment();
            FragmentManager fm2 = getSupportFragmentManager();
            FragmentTransaction fragmentTra2 = fm2.beginTransaction();
            fragmentTra2.replace(R.id.content,generalFragment);
            //fragmentTra1.addToBackStack("added");

            fragmentTra2.commit();
            return true;
        case R.id.announcements:
            AnnouncementsFragment announcementsFragment= new AnnouncementsFragment();
            FragmentManager fm3 = getSupportFragmentManager();
            FragmentTransaction fragmentTraSubOne = fm3.beginTransaction();
            fragmentTraSubOne.replace(R.id.content,announcementsFragment);
            //fragmentTra1.addToBackStack("added");

            fragmentTraSubOne.commit();
            return true;
        case R.id.sub_one:
            NewsFragment newsFragment= new NewsFragment();
            FragmentManager fm4 = getSupportFragmentManager();
            FragmentTransaction fragmentTraSubTwo = fm4.beginTransaction();
            fragmentTraSubTwo.replace(R.id.content,newsFragment);
            //fragmentTra1.addToBackStack("added");

            fragmentTraSubTwo.commit();
            return true;
        case R.id.sub_two:
            FanClubFragment fanClubFragment= new FanClubFragment();
            FragmentManager fm5 = getSupportFragmentManager();
            FragmentTransaction fragmentTraSubThree = fm5.beginTransaction();
            fragmentTraSubThree.replace(R.id.content,fanClubFragment);
            //fragmentTra1.addToBackStack("added");
            fragmentTraSubThree.commit();
            return true;
    }

    return false;
}
public static Intent newIntent(Context context) {

    return new Intent(context,MainActivity.class);
}
@Override
public void onBackPressed() {
    if(isNavDrawerOpen()){
        closeDrawerLayout();
    }else {
        super.onBackPressed();
    }
}

public boolean isNavDrawerOpen() {
    return drawerLayout!=null && drawerLayout.isDrawerOpen(GravityCompat.START);
}
private void closeDrawerLayout(){
    if(drawerLayout != null){
        drawerLayout.closeDrawer(GravityCompat.START);
    }
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    return (keyCode == KeyEvent.KEYCODE_BACK ? true :    
  super.onKeyDown(keyCode, event));
 }
}

Any ideas?

Thanks,

Theo.

Theo
  • 3,099
  • 12
  • 53
  • 94

3 Answers3

3

Try using setTitle():

public boolean setSelected(int selected) {
    switch (selected){
            case R.id.welcome:
                toolbar.setTitle("Welcome");
                ......
            }
    .....
}
Miguel Benitez
  • 2,322
  • 10
  • 22
2

Try using:

getSupportActionBar().setTitle("title");

in the switch-case

Harsh Pandey
  • 831
  • 7
  • 12
0

I think you could use something like this:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuItem item = menu.add(Menu.NONE, ID, POSITION, TEXT);
    item.setIcon(R.drawable.drawable_resource_name);
    item.setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    return true;
}

Also this link might help: Here

Hope it helps ;)

btw your app looks great!

Community
  • 1
  • 1