基于android的手机安全卫士的实现心得三

基于android的手机安全卫士的实现心得三,第1张

概述现在来介绍一下具体的开发过程。首先是主界面,肯定是先写主界面的activity_layout.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apkes/android"xmlns:tools="http://schemas.android.como

现在来介绍一下具体的开发过程。

首先是主界面,肯定是先写主界面的activity_layout.xml

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:tools="http://schemas.androID.com/tools"    androID:layout_height="match_parent"    androID:layout_wIDth="match_parent"    androID:background="#000">    <GrIDVIEw        androID:ID="@+ID/grIDvIEw"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"        androID:columnWIDth="80dp"        androID:stretchMode="spacingWIDthUniform"          androID:numColumns="2"/></linearLayout>

在这里用到了GrIDVIEw,

 androID:stretchMode="spacingWIDthUniform" 既拉伸元素间距又拉伸它们间隔

这只是一个整体布局,里面只有一个GrIDVIEw,我们想让它包含我们想要完成的所有功能的图标,显示给用户,然后让用户去选择使用哪个功能。所以我们的GrIDVIEw_item.xml里面就只有两个内容,既图标和lable。下面是GrIDVIEw_item.xml

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:orIEntation="vertical"    androID:layout_gravity="center"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent">    <ImageVIEw        androID:ID="@+ID/img"        androID:layout_wIDth="60dp"        androID:layout_height="60dp"        androID:layout_margintop="10dp"        androID:src="@drawable/ic_launcher"/>    <TextVIEw        androID:ID="@+ID/text"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_margintop="2dp"        androID:layout_gravity="center"        androID:textcolor="#FFF"        androID:text="文字"/></linearLayout>

好了,现在主界面我们已经做完了,然后开始写主界面的实现逻辑。我们是一个功能一个功能的完成的,所以部分功能先简单的写下点击后显示一个Toast。MainActivity.java

package com.yangmiaoqing.example.myassitant;import androID.Manifest;import androID.app.Activity;import androID.app.Dialog;import androID.content.Intent;import androID.content.pm.PackageManager;import androID.support.v4.app.ActivityCompat;import androID.support.v4.content.ContextCompat;import androID.support.v7.app.AlertDialog;import androID.support.v7.app.AppCompatActivity;import androID.os.Bundle;import androID.util.Log;import androID.vIEw.VIEw;import androID.vIEw.Window;import androID.Widget.AdapterVIEw;import androID.Widget.GrIDVIEw;import androID.Widget.SimpleAdapter;import androID.Widget.Toast;import com.yangmiaoqing.example.myassitant.R;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MainActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback{    private GrIDVIEw grIDVIEw;    private SimpleAdapter adapter;    private List<Map<String,Object>> dataList;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);       // requestwindowFeature(Window.FEATURE_NO_Title);        if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED                &&ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.CALL_PHONE)!=PackageManager.PERMISSION_GRANTED){            ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.READ_PHONE_STATE,Manifest.permission.CALL_PHONE},1);        }else {            Intent intent=new Intent(MainActivity.this,blackNumService.class);            startService(intent);        }        grIDVIEw=(GrIDVIEw)findVIEwByID(R.ID.grIDvIEw);        initData();        String from[]={"img","text"};        int[] to={R.ID.img,R.ID.text};        adapter=new SimpleAdapter(this,dataList,R.layout.grIDvIEw_item,from,to);        grIDVIEw.setAdapter(adapter);        grIDVIEw.setonItemClickListener(new AdapterVIEw.OnItemClickListener() {            @OverrIDe            public voID onItemClick(AdapterVIEw<?> adapterVIEw, VIEw vIEw, int i, long l) {                switch (i){                    case 0:                        AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);                        builder.setTitle("提示").setMessage(dataList.get(i).get("text").toString()).create().show();                        break;                    case 1:                        AlertDialog.Builder builder1=new AlertDialog.Builder(MainActivity.this);                        builder1.setTitle("提示").setMessage(dataList.get(i).get("text").toString()).create().show();                        break;                    case 2:                        Intent intent=new Intent(MainActivity.this,blackList_Activity.class);                        startActivity(intent);                        break;                    case 3:                        AlertDialog.Builder builder3=new AlertDialog.Builder(MainActivity.this);                        builder3.setTitle("提示").setMessage(dataList.get(i).get("text").toString()).create().show();                        break;                    case 4:                        Intent intent1=new Intent(MainActivity.this,AppManagerActivity.class);                        startActivity(intent1);                        break;                    case 5:                        Intent intent2=new Intent(MainActivity.this,ProgressManagerActivity.class);                        startActivity(intent2);                        break;                }            }        });        //getSupportActionbar().hIDe();    }    voID initData(){        int icon[]={R.drawable.data,R.drawable.lock,R.drawable.phone,R.drawable.set,R.drawable.softmanage,R.drawable.task};        String name[]={"流量监测","程序锁","通讯卫士","设置","软件管理","任务管理"};        dataList=new ArrayList<Map<String, Object>>();        for(int i=0;i<icon.length;i++){            Map<String,Object> map=new HashMap<String,Object>();            map.put("img",icon[i]);            map.put("text",name[i]);            dataList.add(map);        }    }    @OverrIDe    public voID onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResult){        switch (requestCode){            case 1:                if(grantResult.length>0&&grantResult[0]==PackageManager.PERMISSION_GRANTED){                    Intent intent=new Intent(MainActivity.this,blackNumService.class);                    startService(intent);                }else if(grantResult.length>0&&grantResult[0]==PackageManager.PERMISSION_DENIED) {                    Log.e("MainActivity","拒绝了使用电话权限");                    AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);                    builder.setTitle("提示").setMessage("您拒绝了使用电话权限,请到相关设置中设置").create().show();                }        }    }}

 

关于Simpleadapter,参数详解

 

context      当前视图所关联的且正在使用的适配器所处的上下文对象

data           一个Map型列表。列表中的每个条目对应于列表中的一行。Map中包含每一行的数据,并且包括所有的条目(其被详细说明在数据源处)把data理解成将要装载的数据即可

resourse   一个VIEw布局的资源标记,其定义了布局中的列表项,布局文件至少包含那些需要展示的视图项,就是想要加载的布局

form        列名的列表,其在Map中对应着每一项数据item,就是Map中的资源数组对应的键值,map中的键值是唯一的。

to   就是想要加载到什么地方

在MainActivity.java中还有为通讯卫士动态申请权限的代码,稍后解释

 

总结一下,主界面主要是由GrIDVIEw来完成的,首先是建一个父xml,包含GrIDVIEw,然后建立GrIDVIEw子项布局。然后在java代码中为GrIDVIEw添加一个Simpleadapter,并为Simpleadapter配置数据。最后为每一个GrIDVIEw子项添加触发事件。

最后说下,所有功能的入口都在这里,以后只介绍每个功能是如何实现的。

总结

以上是内存溢出为你收集整理的基于android的手机安全卫士的实现心得三全部内容,希望文章能够帮你解决基于android的手机安全卫士的实现心得三所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1104000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存