思路:A页面跳到B页面,做用户密码不为空判断,不为空跳转,为空则吐司提示
在A页面重写Onpause();方法 用sp存入一个数据,保存在本地,在用Intent跳转时 用sp对象得到onPause();方法中的值,用Intent传递过去,然后在B页面
显示即可。
大家回顾下onPause,onStop,方法什么时候执行
Android中Activity的生命周期包含了onPause()和onStop(),关于Activity的生命周期的说明:
启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
用户退出当前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>