24手机防盗的完成

我们需要在LostFindActivity这个类中,展示第三个设置向导页面传过来的安全号码,第四个页面如果勾选上了,则将防盗保护是否开启的图片换掉,最终结果如下图。

首先看最后一个设置向导页面:

package com.ustc.mobilemanager;

import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class Setup4Activity extends BaseSetupActivity {

	private SharedPreferences sp;

	private CheckBox cb_protecting;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_setup4);
		sp = getSharedPreferences("config", MODE_PRIVATE);
		cb_protecting = (CheckBox) findViewById(R.id.cb_protecting);

		boolean protecting = sp.getBoolean("protecting", false);

		if (protecting) {
			//手机防盗已经开启
			cb_protecting.setText("手机防盗已经开启");
			cb_protecting.setChecked(true);
		}else {
			//手机防盗没有开启
			cb_protecting.setText("手机防盗没有开启");
			cb_protecting.setChecked(false);
		}
		cb_protecting.setOnCheckedChangeListener(new OnCheckedChangeListener() {

			@Override
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

				if (isChecked) {
					cb_protecting.setText("手机防盗已经开启");
				}else {
					cb_protecting.setText("手机防盗没有开启");
				}

				//保存选择的状态
				Editor editor = sp.edit();
				editor.putBoolean("protecting", isChecked);
				editor.commit();
			}
		});

	}

	@Override
	public void showBack() {
		Intent intent = new Intent(this, Setup3Activity.class);
		startActivity(intent);
		finish();
		// 要求finish()或者startActivity(intent)方面后面执行
		overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);

	}

	public void ok(View view) {
		Editor edit = sp.edit();
		edit.putBoolean("configed", true);
		edit.commit();
		Intent intent = new Intent(this, LostFindActivity.class);
		startActivity(intent);
		finish();
		// 要求finish()或者startActivity(intent)方面后面执行
		overridePendingTransition(R.anim.tran_in, R.anim.tran_out);

	}

	@Override
	public void showNext() {

	}
}

根据CheckBox的状态设置响应的字体。

package com.ustc.mobilemanager;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;

public class LostFindActivity extends Activity {

	private SharedPreferences sp;

	private ImageView iv_protecting;

	private TextView tv_safenumber;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		requestWindowFeature(Window.FEATURE_NO_TITLE);
		sp = getSharedPreferences("config", MODE_PRIVATE);
		// 判断一下,是否做过设置向导,如果没有做过,就跳转到设置向导页面去设置,否则就留在当前的页面
		boolean configed = sp.getBoolean("configed", false);
		if (configed) {
			// 就在手机防盗页面
			setContentView(R.layout.activity_lost_find);

			tv_safenumber = (TextView) findViewById(R.id.tv_safenumber);
			iv_protecting  = (ImageView) findViewById(R.id.iv_protecting);

			//设置安全号码
			String safenumber = sp.getString("safenumber", "");
			if (safenumber != null) {
				tv_safenumber.setText(safenumber);
			}

			//设置防盗保护的状态
			boolean protecting = sp.getBoolean("protecting", false);
			if (protecting) {
				iv_protecting.setImageResource(R.drawable.strongbox_app_lock_ic_locked);
			}else {
				iv_protecting.setImageResource(R.drawable.strongbox_app_lock_ic_unlock);
			}
		} else {
			// 还没有做过设置向导
			Intent intent = new Intent(LostFindActivity.this,
					Setup1Activity.class);
			startActivity(intent);
			finish();
			// 要求finish()或者startActivity(intent)方面后面执行
			overridePendingTransition(R.anim.tran_in, R.anim.tran_out);
		}

	}

	public void back(View view) {
		Intent intent = new Intent(LostFindActivity.this, HomeActivity.class);
		startActivity(intent);
		finish();
		//要求finish()或者startActivity(intent)方面后面执行
		overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);
	}

	/**
	 * 重新进入防盗设置页面(TextView的点击事件)
	 *
	 * @param view
	 */
	public void reEnterSetup(View view) {
		Intent intent = new Intent(LostFindActivity.this, Setup1Activity.class);
		startActivity(intent);
		finish();
		// 要求finish()或者startActivity(intent)方面后面执行
		overridePendingTransition(R.anim.tran_in, R.anim.tran_out);

	}
}

拿到安全号码和设置向导页面4设置的状态。主要是SharedPreferences的操作。

一个错误:

空指针异常,LostFindActivity类中,忘了finfviewbyid就去设置TextView的值,粗心!!!

时间: 2024-10-23 19:17:18

24手机防盗的完成的相关文章

手机安全卫士------手机防盗页面之完成向导页面的UI布局和动画

实现逻辑: 用户点击对话框的确定按钮,跳转页面的时候判断用户此前是否设置过手机防盗功能 如果设置过,直接跳转到防盗页面 如果没设置过,进入设置向导页面,进行相应的配置. 设置向导页面的效果图: 功能的技术点: 1.自定义文字风格 2.自定义按钮的背景 3.界面切换的动画 4.滑动屏幕切换页面 自定义文字风格 由于布局中有很多文字的颜色.字号.上边距.左边距等属性是相同的,因此,自定义一个文字风格,降低编码工作量 具体代码如下: <style name="LostFindText"

手机安全卫士------手机防盗页面之自定义对话框&amp;MD5加密

功能需求: 用户点击主页面上的"手机防盗"按钮时,判断用户是否设置过密码. 如果没有设置过,则弹出输入密码对话框 如果设置过了,则弹出设置密码对话框 用户的密码要进行MD5加密之后再存储在内存中 技术点: - 自定义对话框的使用 - MD5加密的实现方式 - SharedPreferences的读写操作 自定义对话框 1.在layout目录下创建一个布局文件,把自定义的对话框布局设置成功 具体代码实现如下 设置密码对话框的布局代码: <?xml version="1.0

Android实例-手机安全卫士(十五)-由主界面进入手机防盗界面

一.目标 1.在主界面中通过“设置防盗密码”或者“输入防盗密码”后,对话框消失,并进入”手机防盗界面“. 2.进入是”手机防盗界面“时,根据有无完成”手机防盗设置向导“的情况进入不同的界面.若未完成,则进入向导界面,若已完成,则进入防盗界面.          二.代码实现. 1.在程序包(com.example.mobilesafe)下新建两个Activity(分别取名SecurityActivity和SetupWizard),并在配置文件(AndroidManifest.xml)中完成注册.

手机安全卫士------手机防盗页面之发送短信&amp;接收短信

功能需求: 接上一篇文章,如果sim卡变更,则发送一条报警短信给安全号码 接收从安全号码发来的短信,如果内容为报警指令,则根据相应的报警指令做出相应的操作 发送短信 1.创建一个SmsManager对象 SmsManager manager = SmsManager.getDefault(); 2.通过SharedPreferences获取安全号码 String number 3.创建短信内容: content 4.分割短信: 由于每条短信只能70个字,所以我们要把它分割一下:manager.d

Prey —— 一个免费的笔记本/手机防盗跟踪软件

Prey 是一款开源的防盗跟踪软件,通过它你可以随时追踪丢失的笔记本/移动设备.设置挂失后,prey可以自动记录设备的使用情况,包括丢失设备的座标位置.IP位址.桌面截图,还能调用摄像头拍下小偷的长相,并把这些信息发到你的邮箱以及上传到你的prey账号里: 在prey的官网上注册个帐号,并在自己的设备上安装prey,就可以实时跟踪自己的设备了~ (本文地址——http://www.cnblogs.com/zeakhold/p/5251982.html)

手机安全卫士------手机防盗页面之播放报警音乐&amp;GPS定位

播放报警音乐 1.把音乐文件放在res/raw文件中 2.创建MediaPlayer对象 MediaPlayer player = MediaPlayer.create(Context,R.raw.*); 3.设置声音为最高: player.setVolume(1.0f,1.0f); 4.设置声音为循环播放: player.setLooping(true); 代码: //报警音乐 MediaPlayer mediaPlayer = MediaPlayer.create(context, R.ra

手机安全卫士------手机防盗页面之sim卡绑定&amp;读取联系人

实现的功能: sim卡的绑定 读取联系人 技术点: sim卡绑定 获取开机广播 读取联系人 SimpleAdapter的使用 Activity间数据传递 sim卡绑定 思路: 创建一个TelephonyManager对象 TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 调用getSimSerialNumber()即可得到sim卡的序列号 Strin

手机安全卫士------手机防盗页面之销毁数据&amp;远程锁屏

销毁数据和远程锁屏的功能都要通过获得设备管理员权限才能实现 1.首先创建一个类,继承 DeviceAdminReceiver.看类名就会猜到,它可能是一个BroadCastReceiver.通过查看源代码确定这是一个广播子类.所以要到清单文件上注册. 查看Android官方API: <receiver android:name=".MyAdmin" android:label="@string/description" android:description=

手机安全卫士06-手机防盗之自定义对话框

修改主界面的titleBar 可以在系统的AndroidManifest.xml文件中修改相应的配置来改变主界面的theme(设置为无titleBar样式) 当前主界面的样式为: <activity android:name="com.liuhao.mobilesafe.ui.MainActivity" android:theme="@android:style/Theme.NoTitleBar" android:label="@string/mai