登录界面跳转,同时将onpause();方法中的保存的数据传到第二个页面

思路:A页面跳到B页面,做用户密码不为空判断,不为空跳转,为空则吐司提示

       在A页面重写Onpause();方法   用sp存入一个数据,保存在本地,在用Intent跳转时  用sp对象得到onPause();方法中的值,用Intent传递过去,然后在B页面

     显示即可。


   大家回顾下onPause,onStop,方法什么时候执行

  

Android中Activity的生命周期包含了onPause()和onStop(),关于Activity的生命周期的说明:

  1. 启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。

  2. 当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。

  3. 当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。

  4. 当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。

  5. 用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。

  6. 当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。

  7. 用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

    

核心代码;


main 


package com.example.rk_qidanyuan;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private EditText mUsername;
    private EditText mPassword;
    private Button mLogin;
    private SharedPreferences mSp;
    private SharedPreferences.Editor mEdit;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initview();//初始化控件
        //实例一个sp对象
        mSp = getSharedPreferences("zzz", Context.MODE_PRIVATE);
        //得到编辑器
        mEdit = mSp.edit();

    }

    private void initview() {
        mUsername = (EditText) findViewById(R.id.username);
        mPassword = (EditText) findViewById(R.id.password);
        mLogin = (Button) findViewById(R.id.login);
        mLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //if的时候判断用户名和密码是否为空,不为空就跳转
                //为空 ,用户名为空判断 并提示用户,密码为空,提示用户。
                if(!TextUtils.isEmpty(mUsername.getText().toString().trim())&&!TextUtils.isEmpty(mPassword.getText().toString().trim())){
                    Intent intent = new Intent(MainActivity.this,MainActivity02.class);
                    //第一次跳过去的不到 onpause();方法中存的数据,第二次跳过去才会的到,
                    //因为只有当页面暂停时才会走onpause();方法,才会得到值,传过去
                    String str = mSp.getString("zzz","得到的值");
                    intent.putExtra("onpause","onpause"+str);
                    startActivity(intent);
                }else if(TextUtils.isEmpty(mUsername.getText().toString().trim())){
                    Toast.makeText(MainActivity.this,"username 请填写用户名",Toast.LENGTH_LONG).show();
                }else if(TextUtils.isEmpty(mPassword.getText().toString().trim())){
                    Toast.makeText(MainActivity.this,"password 请填写密码",Toast.LENGTH_LONG).show();
                }
            }
        });
    }
//onpause();这个方法只有当页面暂停是调用此方法
    @Override
    protected void onPause() {
        super.onPause();
        //用编辑器对象存入string类型的值
        mEdit.putString("zzz","erbi");
        //提交
        mEdit.commit();
    }
}
 第二个页面

package com.example.rk_qidanyuan;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity02 extends AppCompatActivity {

    private TextView mView;
    private Button mButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main02);
        String str = getIntent().getStringExtra("onpause");
        mView = (TextView) findViewById(R.id.text);
        mView.setText(str);
        mButton = (Button) findViewById(R.id.button);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}
第一个布局

xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.rk_qidanyuan.MainActivity">
<LinearLayout
    android:id="@+id/line1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="用户名:"/>
    <EditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="密码:"/>
LinearLayout>
    <LinearLayout
        android:layout_below="@+id/line1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
     <Button
         android:id="@+id/login"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="登录"/>
    LinearLayout>
RelativeLayout>
第二个布局

xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:context="com.example.rk_qidanyuan.MainActivity02">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">


        <TextView
            android:id="@+id/text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text=""/>

        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="返回"/>
    LinearLayout>

RelativeLayout>

你可能感兴趣的:(登录界面跳转,同时将onpause();方法中的保存的数据传到第二个页面)