Как выполнить навигацию в Android Studio? - PullRequest
0 голосов
/ 16 ноября 2018

Я разрабатываю приложение для Android с использованием MySQL. Там я использую класс selector.java, который выполняет навигацию для входа и регистрации.

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);
        }
    }
}

в приведенном выше сценарии он будет перенаправлять меня прямо на MainDrawer.class, но мне нужно перейти к MainDrawer.class после успешного входа в систему.

Если я изменю приведенный выше код следующим образом, после успешного входа в систему MainDrawer не будет отображаться

 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();
    }

    }

Теперь я хочу перейти к MainDrawer после успешного входа в систему. Как мне этого добиться?

1 Ответ

0 голосов
/ 16 ноября 2018

1. Из приведенного выше кода не получил то, что является Sample.java. Я думаю, что вы создали его для регистрации. 2. Предполагая, что prefConfig является результатом SharedPreference / db, где вы проверяете статус входа 3. Просто добавьте еще один метод, чтобы проверить, зарегистрирован ли пользователь или нет. а затем перейдите к регистрации активности или войти Вы можете использовать приведенную ниже логику и проверить, соответствует ли она тому, что вам нужно.

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