手机卫士讲义day03 下载本文

图3-15 设置完成界面提示

点击下一步校验是否开启防盗保护

校验checkBox是否选中我们要找到触发点,上面分析我们知道点击引导页面第五页下一步的时候,会弹出SI提示信息,所以我们应该找到第五个引导页面的点击下一步的方法。进入方法后首先判断是否选中,如果已经选中,则要记录已经选中信息,用于状态的回显,同时记录设置完成的状态,把信息存储到shared preferences中,如果没有选中就不往下执行,弹出提示吐司。代码如下。

protected boolean performNext() { // 记录已经开启防盗保护 PreferenceUtils.putBoolean(this, Constants.SJFD_PROTECTING, true); // 校验checkbox是否选中 if (!mCbProtecting.isChecked()) { Toast.makeText(this, \勾选后才可以开启防盗保护\Toast.LENGTH_SHORT).show(); } //不再往下执行 return true; } // 下一步 Intent intent = new Intent(this, SjfdActivity.class); startActivity(intent); return false; // 记录已经设置完成 PreferenceUtils.putBoolean(this, Constants.SJFD_SETUP, true); 这里我们用到了两个key值,我们把它们定义在常量类中。代码如下。 String SJFD_SETUP = \String SJFD_PROTECTING = \状态的回显

在初始化视图的过程中,需要把上一次设置的UI状态显示出来,也就是CheckBox的状态,实现方式也是读取存储的CheckBox状态,然后进行设置即可。实现代码如下。 private void initView() { } // 回显状态 mCbProtecting.setChecked(PreferenceUtils.getBoolean(this, Constants.SJFD_PROTECTING)); mCbProtecting = (CheckBox) findViewById(R.id.setup5_cb_protecting); CheckBox的监听

在第五个页面单独点击CheckBox我么也需要记录它的状态,因为每次点击都会改变是否被选中,所以本地存储的状态也要跟着改变,这就需要用到CheckBox的监听器,和点击事件的监听用法类似,监听的回调方法有两个参数,一个是buttonView,指的就是CheckBox本身,另一个是isChecked表示是否被选中,实现代码如下。

private void initEvent() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // buttonView : mCbProtecting // isChecked:当前选中的状态 mCbProtecting.setOnCheckedChangeListener(new OnCheckedChangeListener() { } }); } //存储当前状态 PreferenceUtils.putBoolean(SjfdSetupActivity5.this, Constants.SJFD_PROTECTING, isChecked);

手机防盗页面的实现

手机防盗布局的实现

引导页面完成后会跳转到手机防盗页面,图3-16示如下。

图3-16 手机防盗页面

UI分析

这个界面实现起来不复杂,我们可以把它分成三个部分,如下图3-17所示。

图3-17 手机防盗页面分析

最上面是title部分,可以直接引用我们的TitleBarStyle。下面连续的三部分可以看成是第二大部分,内部的每个部分长相相似根布局可以用RelativeLayout,然后包裹具体控件。每个部分下面的横向可以用view来实现,只需要设置高度值比较小即可,线条的实现代码如下