Android:程序跳过登录界面直接进入主界面(自动登录)

首先是欢迎界面的代码
public class WelcomeActivity extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.welcome);

    /**

    * 延迟3秒进入主界面

    */

    new Handler().postDelayed(new Runnable() {

        @Override

        public void run() {

            Intent intent=new Intent(WelcomeActivity.this,LoginActivity.class);

            startActivity(intent);

            WelcomeActivity.this.finish();

        }

    },1000*3);

}

}

接下来是文章的主要内容。实现自动登录的关键是当程序从欢迎界面跳转到登录界面是,在登录界面还没有加载布局文件时判断是否登陆过,从而实现直接跳转到主界面。这里我们采用SharedPreferences来保存登录状态。代码如下:
public class LoginActivity extends Activity{

SharedPreferences sprfMain;

SharedPreferences.Editor editorMain;

Button login;

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    //在加载布局文件前判断是否登陆过

    sprfMain= PreferenceManager.getDefaultSharedPreferences(this);

    editorMain=sprfMain.edit();

    //.getBoolean("main",false);当找不到"main"所对应的键值是默认返回false

    if(sprfMain.getBoolean("main",false)){

        Intent intent=new Intent(LoginActivity.this,MainActivity.class);

        startActivity(intent);

        LoginActivity.this.finish();

    }

    setContentView(R.layout.login);

    login= (Button) findViewById(R.id.login);

    //这里只是简单用按键模拟登录功能

    login.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            Intent intent=new Intent(LoginActivity.this,MainActivity.class);

            editorMain.putBoolean("main",true);

            editorMain.commit();

            startActivity(intent);

            LoginActivity.this.finish();

        }

    });

}

}

接下来是实现注销后要重新进入登录界面

public class MainActivity extends AppCompatActivity {

SharedPreferences sprfMain;

SharedPreferences.Editor editorMain;

Button exit;

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    exit= (Button) findViewById(R.id.exit);

    exit.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

        //点击注销按键后调用LoginActivity提供的resetSprfMain()方法执行editorMain.putBoolean("main",false);,即将"main"对应的值修改为false

            resetSprfMain();

            Intent intent=new Intent(MainActivity.this,WelcomeActivity.class);

            startActivity(intent);

            MainActivity.this.finish();

        }

    });

}

public void resetSprfMain(){

    sprfMain= PreferenceManager.getDefaultSharedPreferences(this);

    editorMain=sprfMain.edit();

    editorMain.putBoolean("main",false);

    editorMain.commit();

}

}

你可能感兴趣的:(Android:移动端开发指南)