[android] 手机卫士黑名单功能(列表展示)

[android] 手机卫士黑名单功能(列表展示),第1张

概述先把要拦截的电话号码保存到数据库中,拦截模式用个字段区分,1 电话拦截,2 短信拦截,3全部拦截 新建Activity类CallSmsSafeActivity.java 新建布局文件activity_

先把要拦截的电话号码保存到数据库中,拦截模式用个字段区分,1 电话拦截,2 短信拦截,3全部拦截

 

新建ActivityCallSmsSafeActivity.java

新建布局文件activity_call_sms_safe.xml

列表展示所有的黑名单手机号码

在布局文件中添加<ListVIEw>控件,定义一个ID

获取ListVIEw对象

调用ListVIEw对象的setAdapter()方法,参数:listadapter对象

 

定义内部类CallSmsSafeAdapter继承系统的BaseAdapter

实现四个方法,重要的有两个getCount()getVIEw()

实现getCount()方法,返回集合的长度

实现getVIEw()方法

调用VIEw.inflate()方法,转换布局文件为VIEw对象,参数:上下文,布局资源,null

查找到相应的控件,设置文件

 

 

数据库 *** 作

db包下新建一个BlackNumberDBOpenHelper类继承sqliteOpenHelper

实现构造方法

调用父类的构造方法,super(),参数:上下文,数据库名称,游标工厂(null,版本号(1

 

重写onCreate()方法,传递进来参数sqliteDatabase对象

调用sqliteDatabase对象的execsql()方法,参数:Stringsql语句(例如:create table blacknumber (ID integer primary key autoincrement,phone varchar(20),mode varchar(2))

重写onUpgrade()方法

 

dao

db.dao包下新建一个BlackNumberDao

定义构造方法,传递进来参数:Context对象

获取BlackNumberDBOpenHelper对象,参数:Context对象

 

查询单条

定义方法find(),查询一条记录,参数:String类型电话号码

调用helper对象的getReadableDatabase()方法,获取到sqliteDatabase对象

调用sqliteDatabase对象的rawquery()方法,获取到Cursor对象,参数:String类型sql语句,String[]参数值数组

调用Cursor对象的movetoNext()方法,如果为真,说明有数据,

调用Cursor对象的getString()方法,获取到值,参数:字段索引

返回Map集合

 

查询全部

定义方法findAll(),查询全部数据

调用helper对象的getReadableDatabase()方法,获取到sqliteDatabase对象

调用sqliteDatabase对象的rawquery()方法,获取到Cursor对象,参数:String类型sql语句

新建一个domain包,新建一个业务beanBlackNumberInfo

while循环Cursor对象调用movetoNext()

返回List集合

 

插入一条

定义方法add(),插入一条记录,参数:String电话号码,Stringmode模式

调用helper对象的getWritableDatabase()方法,获取到sqliteDatabase对象

调用sqliteDatabase对象的insert()方法,插入一条记录,参数:String表名,允许为null的列,ContentValues对象

获取ContentValues对象,new出来

调用ContentValues对象的put()方法,参数:keyvalue

 

修改记录

定义方法update(),修改记录,参数:String电话号码,Stringmode模式

调用helper对象的getWritableDatabase()方法,获取到sqliteDatabase对象

调用sqliteDatabase对象的update()方法,修改表记录,参数:String表名,ContentValues对象,String的条件(“number=?”),String[]参数值数组

 

删除记录

定义delete()方法,删除记录,参数:String电话号码

调用helper对象的getWritableDatabase()方法,获取到sqliteDatabase对象

调用sqliteDatabase对象的delete()方法,删除表记录,参数:String表名,String的条件(“number=?”),String[]参数值数组

调用sqliteDatabase对象的close()方法,关闭数据库

 

CallSmsSafeActivity.java

 

package com.qingguow.mobilesafe;import java.util.List; java.util.Map; androID.app.Activity; androID.os.Bundle; androID.vIEw.VIEw; androID.vIEw.VIEwGroup; androID.Widget.BaseAdapter; androID.Widget.ListVIEw; androID.Widget.TextVIEw; com.qingguow.mobilesafe.db.ado.BlackNumberAdo;/** * 通讯卫士 *  * @author taoshihan *  */public class CallSmsSafeActivity extends Activity {    private ListVIEw ListvIEw;    private List<Map<String,String>> infos;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_call_sms_safe);        ListvIEw = (ListVIEw) findVIEwByID(R.ID.lv_blacknumber);                BlackNumberAdo ado = new BlackNumberAdo(this);        infos = ado.findAll();        ListvIEw.setAdapter(new MyAdapter());        // //添加100条测试数据         Random random=new Random();         for(int i=1;i<=100;i++){         ado.add("18805419000"+i,String.valueOf(random.nextInt(3)+1));         }            }    private class MyAdapter  BaseAdapter {        @OverrIDe        int getCount() {             Todo auto-generated method stub            return infos.size();        }        @OverrIDe        public VIEw getVIEw( position,VIEw convertVIEw,VIEwGroup parent) {            VIEw vIEw = VIEw.inflate(CallSmsSafeActivity.,R.layout.List_call_sms_safe_item,null);            TextVIEw phoneVIEw = (TextVIEw) vIEw                    .findVIEwByID(R.ID.tv_main_phone);            TextVIEw modeVIEw = (TextVIEw) vIEw                    .findVIEwByID(R.ID.tv_block_mode);            phoneVIEw.setText(infos.get(position).get("phone"));            switch (infos.get(position).get("mode")) {            case "1":                modeVIEw.setText("电话拦截");                break;            case "2":                modeVIEw.setText("短信拦截"case "3":                modeVIEw.setText("全部拦截"default:                ;            }                         vIEw;        }        @OverrIDe        public Object getItem( position) {            return ;        }        @OverrIDe        long getItemID(return 0;        }    }}

 

BlackNumberAdo.java

 com.qingguow.mobilesafe.db.ado; java.util.ArrayList; java.util.HashMap; androID.content.ContentValues; androID.content.Context; androID.database.Cursor; androID.database.sqlite.sqliteDatabase; com.qingguow.mobilesafe.db.BlackNumberDBOpenHelper;class BlackNumberAdo {     BlackNumberDBOpenHelper helper;    public BlackNumberAdo(Context context) {        helper= BlackNumberDBOpenHelper(context);    }         * 插入数据     * @param phone     *  mode     */     add(String phone,String mode) {        sqliteDatabase db=helper.getWritableDatabase();        ContentValues values= ContentValues();        values.put("phone"     * 查询全部     * @return     public List<Map<String,1)"> findAll(){        sqliteDatabase db=helper.getReadableDatabase();        Cursor cursor=db.rawquery("select phone,mode from blacknumber",1)">);        List<Map<String,String>> List=new ArrayList<Map<String,1)">();        while(cursor.movetoNext()){            Map<String,String> info=new HashMap<String,String>();            String phone=cursor.getString(0);            String mode=cursor.getString(1);            info.put("phone" List;    }         * 修改数据     *  update(String phone,mode);        db.update("blacknumber",values,"phone=?",1)"> String[]{phone});        db.close();    }         * 删除数据     *  phone      delete(String phone){        sqliteDatabase db=helper.getWritableDatabase();        db.delete("blacknumber",1)"> String[]{phone});        db.close();    }}

 

 

BlackNumberDBOpenHelper.java

 com.qingguow.mobilesafe.db; androID.database.sqlite.sqliteDatabase; androID.database.sqlite.sqliteDatabase.CursorFactory; androID.database.sqlite.sqliteOpenHelper; * 黑名单数据库帮助类 *  * class BlackNumberDBOpenHelper  sqliteOpenHelper {     BlackNumberDBOpenHelper(Context context) {        super(context,"blacknumber",1)">null,1);    }    @OverrIDe     onCreate(sqliteDatabase db) {        db.execsql("create table blacknumber (ID integer primary key autoincrement,mode varchar(2))"voID onUpgrade(sqliteDatabase db,1)">int oldVersion,1)"> newVersion) {    }}

 

 

总结

以上是内存溢出为你收集整理的[android] 手机卫士黑名单功能(列表展示)全部内容,希望文章能够帮你解决[android] 手机卫士黑名单功能(列表展示)所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1121185.html

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

发表评论

登录后才能评论

评论列表(0条)

保存