0

MySQL を使用して Android アプリケーションを開発しています。ログインと登録のナビゲーションを実行するselector.javaというクラスを使用しています。

セレクター.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;
    }
}

サンプル.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 に移動したいと思います。どうすればそれを達成できますか?

4

1 に答える 1

0

1. 上記のコードでは、Sample.java とは何かを取得できませんでした。registrationActivity 用に作成したと思います。2. prefConfig が、ログインのステータスをチェックする SharedPreference/db の結果のようなものであると仮定します。 3. ユーザーがすでに登録されているかどうかをチェックするメソッドをもう 1 つ追加するだけです。次に、registrationActivity または login に移動します。以下のロジックを使用して、必要なものを満たしているかどうかを確認できます。

if(preconfig.isLoggedIn()){
    intent to MainActivity / (MainDrawer)
}else if(preconfig.isUserRegistered()){
    intent to LoginActivity()
}else{
    intent to RegistrationActivity() / (Sample)
}
于 2018-11-16T19:09:52.427 に答える