一、目标
1、在主界面中通过“设置防盗密码”或者“输入防盗密码”后,对话框消失,并进入”手机防盗界面“。
2、进入是”手机防盗界面“时,根据有无完成”手机防盗设置向导“的情况进入不同的界面。若未完成,则进入向导界面,若已完成,则进入防盗界面。
二、代码实现。
1、在程序包(com.example.mobilesafe)下新建两个Activity(分别取名SecurityActivity和SetupWizard),并在配置文件(AndroidManifest.xml)中完成注册。SecurityActivity用于“手机防盗”功能的实现,SetupWizard用于防盗设置向导的实现。同时完成各个新建类中onCreate方法的实现。
2、在layout包下建立这新建的两个类的布局文件(分别取名activity_security.xml和activity_setupwizard_ui1.xml),activity_security.xml用于设计”手机防盗“界面(SecurityActivity)的UI,activity_setupwizard_ui1.xml用于设计”手机防盗设置向导“界面的第一个页UI。并通过setContentView将”手机防盗设置向导“界面代码和布局文件关联。
3、在主界面(HomeActivity)”弹出设置防盗密码对话框“(showSetPwdDialog)和”弹出输入防盗密码对话框“(showinputPwdDialog)两个方法里,当密码设置或输入正确时,通过Intent启动”手机防盗“类(SecurityActivity)。
主界面进入”手机防盗界面“代码如下(注:两个方法中都需要加入):
1 Intent intent =new Intent(HomeActivity.this,SecurityActivity.class); 2 startActivity(intent);
4、在”手机防盗“类(SecurityActivity)代码中,通过SharedPreferences对象中的波boolean类型参数(setupwizard)的值来判断进入”手机防盗界面“还是启动“手机防盗设置向导”类。
①.在”手机防盗“类(SecurityActivity)中定义一个private的SharedPreferences成员变量(sp),在onCreate方法中,通过SharedPreferences对象(sp)的getSharedPreferences(String name, int mode)获取名称(String name)为“config”的SharedPreferences对象,类型(int mode)为MODE_PRIVATE。
②在通过SharedPreferences对象(sp)的getBoolean(String key, boolean defValue)方法获取键名为“setupwizard”的boolean类型的值(取名setupwizard)。
③.通过if...else语句判断该值(setupwizard),如果为true,则进入”手机防盗“界面,如果为false,则通过Intent方法启动设置向导(SetupWizard)类,并通过finish()方法关闭当前页面”SecurityActivity“。
手机防盗类(SecurityActivity)代码:
1 public class SecurityActivity extends Activity { 2 private SharedPreferences sp; 3 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 //判断是否已完成设置向导,若无则进入设置向导。 8 sp = getSharedPreferences("config",MODE_PRIVATE); 9 boolean setupwizard = sp.getBoolean("setupwizard", false); 10 if(setupwizard){ 11 setContentView(R.layout.activity_security); 12 }else { 13 Intent intent =new Intent(SecurityActivity.this,SetupWizard.class); 14 startActivity(intent); 15 finish(); 16 } 17 } 18 }