首页 > 代码库 > Android实例-手机安全卫士(十八)-完成设置向导的4个UI和跳转事件

Android实例-手机安全卫士(十八)-完成设置向导的4个UI和跳转事件

一、目标。

   制作向导设置里面每一步的UI布局及点击事件控制。

  1、使用自定义button背景、自定义组合控件、自定义文本样式等。

  2、利用SharedPreferences对象,设置应用程序配置信息(向导设置完成后就不再进入)

技术分享  技术分享   技术分享    技术分享

二、代码实现。

  1、在程序包下新建另外3个UI的类(分别为SetupWizard_ui_2.java、SetupWizard_ui_3.java、SetupWizard_ui_4.java),并在配置文件中注册Activity。

  2、根据UI设计,在设置向导中均存在“下一步、“上一步”按钮,因此可将这些相同的属性抽出(包括onClick),在value文件夹下的style文件中制成一个样式。可参照第十六节-自定义文本框的介绍。同时完成”上一步“按钮的样式。

自定义下一步button样式代码;

技术分享
 1 <style name="setup_bt_next"> 2         <item name="android:onClick">next</item> 3         <item name="android:layout_width">wrap_content</item> 4         <item name="android:layout_alignParentBottom">true</item> 5         <item name="android:layout_alignParentRight">true</item> 6         <item name="android:layout_marginBottom">5dip</item> 7         <item name="android:layout_marginRight">5dip</item> 8         <item name="android:background">@drawable/button</item> 9         <item name="android:text">下一步</item>10     </style>
View Code

 

  3、在需要使用该样式的button属性中引用该样式。

  4、在设置向导第一步页面中设置点击事件(在第2步中已经取名为next),通过Intent使其跳转至第二步的页面中。

跳转代码:

技术分享
1 public void next(View view){2         Intent intent = new Intent(SetupWizard_ui_1.this,SetupWizard_ui_2.class);3         startActivity(intent);4         finish();        5     }
View Code

 

  5、根据要求将向导第二步的UI设计完成。可以采用之前的TextView样式和自定义组合控件完成。

  6、在向导第二步中设置点击事件(在第2步中已经取名为next),在button样式中已取名上一步的点击事件名称为pre,均通过Intent使其跳转至第三步和第一步的页面中。

代码如下:

技术分享
 1 //设置下一步点击事件 2     public void next (View view){ 3         Intent intent = new Intent (SetupWizard_ui_2.this,SetupWizard_ui_3.class); 4         startActivity(intent); 5         finish(); 6     } 7     //设置上一步点击事件 8     public void pre (View view){ 9         Intent intent = new Intent (SetupWizard_ui_2.this,SetupWizard_ui_1.class);10         startActivity(intent);11         finish();12     }
View Code

 

  7、同理可以完成第三步UI类和布局文件。

  8、第四步点击设置完成时应该将SharedPreferences对象(config文件)中的向导标记(setupwizard)设置为true。

向导四步的类代码:

第一步类:

技术分享
 1 public class SetupWizard_ui_1 extends Activity{ 2      3     @Override 4     protected void onCreate(Bundle savedInstanceState) { 5         super.onCreate(savedInstanceState); 6         setContentView(R.layout.activity_setupwizard_ui1); 7     } 8      9     //下一步的点击事件10     public void next(View view){11         Intent intent = new Intent(SetupWizard_ui_1.this,SetupWizard_ui_2.class);12         startActivity(intent);13         finish();        14     }15 16 }
View Code

 

第一步UI布局文件:

技术分享
 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     xmlns:custom="http://schemas.android.com/apk/res/com.example.mobilesafe" 4     android:layout_width="match_parent" 5     android:layout_height="match_parent" 6     android:orientation="vertical" > 7  8     <TextView 9         android:layout_width="match_parent"10         android:layout_height="50dip"11         android:background="#00ffff"12         android:gravity="center"13         android:text="防盗设置向导"14         android:textColor="#000000"15         android:textSize="28sp" />16 17     <TextView18         android:layout_width="wrap_content"19         android:layout_height="35dip"20         android:gravity="center"21         android:text="手机防盗功能:"22         android:textSize="25sp" />23 24     <TextView25         style="@style/SetupWizardTVStyle"26         android:drawableLeft="@drawable/ic_menu_play_clip"27         android:text="sim卡变更报警" />28 29     <TextView30         style="@style/SetupWizardTVStyle"31         android:drawableLeft="@drawable/ic_menu_play_clip"32         android:text="GPS追踪" />33 34     <TextView35         style="@style/SetupWizardTVStyle"36         android:drawableLeft="@drawable/ic_menu_play_clip"37         android:text="远程数据销毁" />38 39     <TextView40         style="@style/SetupWizardTVStyle"41         android:drawableLeft="@drawable/ic_menu_play_clip"42         android:text="远程锁屏" />43 44     <LinearLayout45         android:layout_width="wrap_content"46         android:layout_height="wrap_content"47         android:layout_gravity="center_horizontal"48         android:layout_marginTop="15dip" >49 50         <ImageView51             android:layout_width="wrap_content"52             android:layout_height="wrap_content"53             android:src="http://www.mamicode.com/@android:drawable/presence_online" />54 55         <ImageView56             android:layout_width="wrap_content"57             android:layout_height="wrap_content"58             android:src="http://www.mamicode.com/@android:drawable/presence_invisible" />59 60         <ImageView61             android:layout_width="wrap_content"62             android:layout_height="wrap_content"63             android:src="http://www.mamicode.com/@android:drawable/presence_invisible" />64 65         <ImageView66             android:layout_width="wrap_content"67             android:layout_height="wrap_content"68             android:src="http://www.mamicode.com/@drawable/presence_invisible" />69     </LinearLayout>70 71     <RelativeLayout72         android:layout_width="match_parent"73         android:layout_height="match_parent" >74 75         <ImageView76             android:layout_width="wrap_content"77             android:layout_height="wrap_content"78             android:layout_centerInParent="true"79             android:src="http://www.mamicode.com/@drawable/ic_jog_dial_unlock" />80 81         <Button82             style="@style/setup_bt_next"/>83     </RelativeLayout>84 85 </LinearLayout>
View Code

 

第二步类:

技术分享
 1 package com.example.mobilesafe; 2  3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.view.View; 7  8 public class SetupWizard_ui_2 extends Activity{ 9     10     @Override11     protected void onCreate(Bundle savedInstanceState) {12         super.onCreate(savedInstanceState);13         setContentView(R.layout.activity_setupwizard_ui2);14     }15     16     //设置下一步点击事件17     public void next (View view){18         Intent intent = new Intent (SetupWizard_ui_2.this,SetupWizard_ui_3.class);19         startActivity(intent);20         finish();21     }22     //设置上一步点击事件23     public void pre (View view){24         Intent intent = new Intent (SetupWizard_ui_2.this,SetupWizard_ui_1.class);25         startActivity(intent);26         finish();27     }28 }
View Code

 

第二步UI布局文件:

技术分享
 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     xmlns:custom="http://schemas.android.com/apk/res/com.example.mobilesafe" 4     android:layout_width="match_parent" 5     android:layout_height="match_parent" 6     android:orientation="vertical" > 7  8     <TextView 9         android:layout_width="match_parent"10         android:layout_height="50dip"11         android:background="#00ffff"12         android:gravity="center"13         android:text="2.手机卡绑定"14         android:textColor="#000000"15         android:textSize="28sp" />16 17     <TextView18         android:layout_width="wrap_content"19         android:layout_height="35dip"20         android:gravity="center"21         android:text="通过绑定SIM卡:"22         android:textSize="25sp" />23 24     <TextView25         style="@style/SetupWizardTVStyle"26         android:layout_height="wrap_content"27         android:gravity="center_vertical"28         android:text="下次重启手机如果发现SIM卡变化就会发送报警短信" />29     30     <com.example.mobilesafe.ui.SettingItemView31         custom:title="绑定SIM卡"32         custom:content="SIM卡未绑定"33         custom:checked="false"34         custom:check_off="SIM卡未绑定"35         custom:check_on="SIM卡已成功绑定"36         android:layout_width="wrap_content"37         android:layout_height="wrap_content" >38     </com.example.mobilesafe.ui.SettingItemView>39     40 41     <LinearLayout42         android:layout_width="wrap_content"43         android:layout_height="wrap_content"44         android:layout_gravity="center_horizontal"45         android:layout_marginTop="15dip" >46 47         <ImageView48             android:layout_width="wrap_content"49             android:layout_height="wrap_content"50             android:src="http://www.mamicode.com/@android:drawable/presence_invisible" />51 52         <ImageView53             android:layout_width="wrap_content"54             android:layout_height="wrap_content"55             android:src="http://www.mamicode.com/@android:drawable/presence_online" />56 57         <ImageView58             android:layout_width="wrap_content"59             android:layout_height="wrap_content"60             android:src="http://www.mamicode.com/@android:drawable/presence_invisible" />61 62         <ImageView63             android:layout_width="wrap_content"64             android:layout_height="wrap_content"65             android:src="http://www.mamicode.com/@drawable/presence_invisible" />66     </LinearLayout>67 68     <RelativeLayout69         android:layout_width="match_parent"70         android:layout_height="match_parent" >71 72         <ImageView73             android:layout_width="wrap_content"74             android:layout_height="wrap_content"75             android:layout_centerInParent="true"76             android:src="http://www.mamicode.com/@drawable/ic_launcher_android" />77 78         <Button79             style="@style/setup_bt_next"/>80          <Button81             style="@style/setup_bt_pre"/>82     </RelativeLayout>83 84 </LinearLayout>
View Code

 

第三步类:

技术分享
 1 package com.example.mobilesafe; 2  3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.view.View; 7  8 public class SetupWizard_ui_3 extends Activity { 9 10     @Override11     protected void onCreate(Bundle savedInstanceState) {12         super.onCreate(savedInstanceState);13         setContentView(R.layout.activity_setupwizard_ui3);14     }15 16     // 设置下一步点击事件17     public void next(View view) {18         Intent intent = new Intent(SetupWizard_ui_3.this,19                 SetupWizard_ui_4.class);20         startActivity(intent);21         finish();22     }23 24     // 设置上一步点击事件25     public void pre(View view) {26         Intent intent = new Intent(SetupWizard_ui_3.this,27                 SetupWizard_ui_2.class);28         startActivity(intent);29         finish();30     }31 32 }
View Code

 

第三步UI布局文件;

技术分享
 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     xmlns:custom="http://schemas.android.com/apk/res/com.example.mobilesafe" 4     android:layout_width="match_parent" 5     android:layout_height="match_parent" 6     android:orientation="vertical" > 7  8     <TextView 9         android:layout_width="match_parent"10         android:layout_height="50dip"11         android:background="#00ffff"12         android:gravity="center"13         android:text="3.设置安全号码"14         android:textColor="#000000"15         android:textSize="28sp" />16 17     <TextView18         style="@style/SetupWizardTVStyle"19         android:layout_height="wrap_content"20         android:gravity="center_vertical"21         android:text="SIM卡变更后报警短信发给安全号码" />22 23     <EditText24         android:layout_width="match_parent"25         android:layout_height="wrap_content"26         android:hint="请输入电话号码"27         android:inputType="phone" />28 29     <Button30         android:layout_width="match_parent"31         android:layout_height="wrap_content"32         android:text="选择联系人" 33         android:textColor="#ffffff"34         android:background="@drawable/button_select_context"/>35 36     <LinearLayout37         android:layout_width="wrap_content"38         android:layout_height="wrap_content"39         android:layout_gravity="center_horizontal"40         android:layout_marginTop="15dip" >41 42         <ImageView43             android:layout_width="wrap_content"44             android:layout_height="wrap_content"45             android:src="http://www.mamicode.com/@android:drawable/presence_invisible" />46 47         <ImageView48             android:layout_width="wrap_content"49             android:layout_height="wrap_content"50             android:src="http://www.mamicode.com/@android:drawable/presence_invisible" />51 52         <ImageView53             android:layout_width="wrap_content"54             android:layout_height="wrap_content"55             android:src="http://www.mamicode.com/@android:drawable/presence_online" />56 57         <ImageView58             android:layout_width="wrap_content"59             android:layout_height="wrap_content"60             android:src="http://www.mamicode.com/@drawable/presence_invisible" />61     </LinearLayout>62 63     <RelativeLayout64         android:layout_width="match_parent"65         android:layout_height="match_parent" >66 67         <ImageView68             android:layout_width="wrap_content"69             android:layout_height="wrap_content"70             android:layout_centerInParent="true"71             android:src="http://www.mamicode.com/@drawable/ic_menu_login" />72 73         <Button style="@style/setup_bt_next" />74 75         <Button style="@style/setup_bt_pre" />76     </RelativeLayout>77 78 </LinearLayout>
View Code

 

第四步类:

技术分享
 1 package com.example.mobilesafe; 2  3 import android.app.Activity; 4 import android.content.Intent; 5 import android.content.SharedPreferences; 6 import android.content.SharedPreferences.Editor; 7 import android.os.Bundle; 8 import android.view.View; 9 10 public class SetupWizard_ui_4 extends Activity{11     12     private SharedPreferences sp;13     14     @Override15     protected void onCreate(Bundle savedInstanceState) {16         super.onCreate(savedInstanceState);17         setContentView(R.layout.activity_setupwizard_ui4);18         sp = getSharedPreferences("config", MODE_PRIVATE);        19     }20     21     // 设置下一步点击事件22         public void next(View view) {23             Editor editor = sp.edit();24             editor.putBoolean("setupwizard", true);25             editor.commit();26             Intent intent = new Intent(SetupWizard_ui_4.this,27                     SecurityActivity.class);28             startActivity(intent);29             finish();            30         }31 32         // 设置上一步点击事件33         public void pre(View view) {34             Intent intent = new Intent(SetupWizard_ui_4.this,35                     SetupWizard_ui_3.class);36             startActivity(intent);37             finish();38         }39 40 }
View Code

 

第四步UI布局文件;

技术分享
 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     xmlns:custom="http://schemas.android.com/apk/res/com.example.mobilesafe" 4     android:layout_width="match_parent" 5     android:layout_height="match_parent" 6     android:orientation="vertical" > 7  8     <TextView 9         android:layout_width="match_parent"10         android:layout_height="50dip"11         android:background="#00ffff"12         android:gravity="center"13         android:text="4.设置完成"14         android:textColor="#000000"15         android:textSize="28sp" />16 17     <CheckBox18         android:layout_width="wrap_content"19         android:layout_height="wrap_content"20         android:text="未开启防盗保护" />21 22     <LinearLayout23         android:layout_width="wrap_content"24         android:layout_height="wrap_content"25         android:layout_gravity="center_horizontal"26         android:layout_marginTop="15dip" >27 28         <ImageView29             android:layout_width="wrap_content"30             android:layout_height="wrap_content"31             android:src="http://www.mamicode.com/@android:drawable/presence_invisible" />32 33         <ImageView34             android:layout_width="wrap_content"35             android:layout_height="wrap_content"36             android:src="http://www.mamicode.com/@android:drawable/presence_invisible" />37 38         <ImageView39             android:layout_width="wrap_content"40             android:layout_height="wrap_content"41             android:src="http://www.mamicode.com/@android:drawable/presence_invisible" />42 43         <ImageView44             android:layout_width="wrap_content"45             android:layout_height="wrap_content"46             android:src="http://www.mamicode.com/@drawable/presence_online" />47     </LinearLayout>48 49     <RelativeLayout50         android:layout_width="match_parent"51         android:layout_height="match_parent" >52 53         <ImageView54             android:layout_width="wrap_content"55             android:layout_height="wrap_content"56             android:layout_centerInParent="true"57             android:src="http://www.mamicode.com/@drawable/ic_menu_login" />58 59         <Button60             style="@style/setup_bt_next"61             android:text="设置完成" />62 63         <Button style="@style/setup_bt_pre" />64     </RelativeLayout>65 66 </LinearLayout>
View Code

 

Android实例-手机安全卫士(十八)-完成设置向导的4个UI和跳转事件