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.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.