How to perform the navigation in Android Studio?

439 Views Asked by At

I am developing an Android application by using MySQL. There i am using a class called selector.java which perform the navigation for login and registration.

selector.java

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class Selector extends AppCompatActivity
{
    public static PreConfig preConfig;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        preConfig = new PreConfig(this);
        if(preConfig.readLoginStatus())
        {
            Intent i = new Intent(this,sample.class);
            startActivity(i);
        }
        else
        {
            Intent intentList = new 
            Intent(this,MainDrawer.class);
            startActivity(intentList);
        }
    }
}

in the above scenario it will redirect me to the MainDrawer.class straightly but i need to navigate to MainDrawer.class once the login is successful.

If i will change the above code as follows then it wont show up the MainDrawer after the successful log in

 if(preConfig.readLoginStatus())
            {
                Intent i = new Intent(this,sample.class);
                startActivity(i);

            }
            else
            {
                Intent i = new Intent(this,LoginActivity.class);
                startActivity(i);
            }
        }

MainDrawer.java

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

public class MainDrawer extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

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


        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
              this,drawer,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();
        NavigationView navigationView = (NavigationView) 
        findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
    }
    @Override
    public void onBackPressed(){
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if(drawer.isDrawerOpen(GravityCompat.START)){
            drawer.closeDrawer(GravityCompat.START);
        }
        else{
            super.onBackPressed();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.nav_drawer, menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        int id = item.getItemId();

        if(id == R.id.action_settings ){
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public boolean onNavigationItemSelected(MenuItem item){
        DrawerLayout drawer = (DrawerLayout) 
        findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
}

Sample.java

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.firebase.iid.FirebaseInstanceId;

public class sample extends AppCompatActivity {

    public String printMyFCMToken()
    {
        Log.e("FCM Token=",""+ FirebaseInstanceId.getInstance().getToken());
        return FirebaseInstanceId.getInstance().getToken();
    }

    }

Now i want to navigate to MainDrawer after successful login. How can i achieve that?

1

There are 1 best solutions below

0
On

1.From above code didn't get what is Sample.java I think you have created it for registrationActivity. 2.Assuming the prefConfig is kind of SharedPreference/db result where you are checking the status of login 3.Just add one more method to check if user is already registred or not. and then navigate to registrationActivity or login You can use below logic and check if it fulfill what you need.

if(preconfig.isLoggedIn()){
    intent to MainActivity / (MainDrawer)
}else if(preconfig.isUserRegistered()){
    intent to LoginActivity()
}else{
    intent to RegistrationActivity() / (Sample)
}