[android] 手机卫士黑名单功能(ListView结合SQLite增删改)

[android] 手机卫士黑名单功能(ListView结合SQLite增删改),第1张

概述修改界面,在顶部横条上增加一个添加按钮,点击打开一个自定义对话框,输入电话号码和拦截模式保存到数据库 自定义对话框看这篇http://www.cnblogs.com/taoshihan/p/53703

修改界面,在顶部横条上增加一个添加按钮,点击打开一个自定义对话框,输入电话号码和拦截模式保存到数据库

自定义对话框看这篇http://www.cnblogs.com/taoshihan/p/5370378.HTML

 

添加记录

调用Builder对象的show()方法,获取AlertDialog对象

调用VIEw.inflate()方法,将布局文件转成VIEw对象

调用VIEw对象的findVIEwByID()方法,获取确认和取消的button对象

调用button对象的setonClickListener()方法,设置点击事件,匿名内部类实现OnClickListener接口,重写onClick()方法

调用AlertDialog对象的dismiss()方法,可以关闭对话框

调用VIEw对象的findVIEwByID()方法,获取到各个控件的值,进行判断处理

调用之前定义好的DaoBlackNumberAdo对象的add()方法,数据库增加一条记录,参数:String电话号码,String拦截模式

此时ListVIEw并不会显出出来刚添加的记录,需要退出这个Activity重写进入,我们通知适配器数据更新

调用集合List对象的add()方法,添加一条数据,参数:0(第一个),数据

调用listadapter对象的notifyDataSetChanged()方法,通知数据更新

 

删除记录

条目布局文件中,在右侧放置一个垃圾桶的小图标,上下居中,父控件右边

 

安卓系统的点击事件和Js的点击事件很相似,

参考这篇:http://www.cnblogs.com/taoshihan/p/5438729.html

 

获取到删除按钮button对象

调用button对象,设置点击事件

获取AlertDialog.Builder对象,展示是否确认删除的对话框

调用AlertDialog.Builder对象,设置确认按钮和取消按钮,注意设置点击事件OnClickListener时,它所在的包是DialogInterface.OnClickListener

调用之前定义好的DaoBlackNumberAdo对象的delete()方法,参数:String电话号码

调用集合List对象的remove()方法,删除一条数据,参数:int索引

调用listadapter对象的notifyDataSetChanged()方法,通知数据更新

CallSmsSafeActivity.java

package com.qingguow.mobilesafe;import java.util.HashMap; java.util.List; java.util.Map; androID.app.Activity; androID.app.AlertDialog; androID.app.AlertDialog.Builder; androID.content.DialogInterface; androID.os.Bundle; androID.text.TextUtils; androID.vIEw.VIEw; androID.vIEw.VIEw.OnClickListener; androID.vIEw.VIEwGroup; androID.Widget.BaseAdapter; androID.Widget.button; androID.Widget.CheckBox; androID.Widget.EditText; androID.Widget.ImageVIEw; androID.Widget.ListVIEw; androID.Widget.TextVIEw; androID.Widget.Toast; com.qingguow.mobilesafe.db.ado.BlackNumberAdo;/** * 通讯卫士 *  * @author taoshihan *  */public class CallSmsSafeActivity extends Activity {    private ListVIEw ListvIEw;    private List<Map<String,String>> infos;     BlackNumberAdo dao;     MyAdapter myAdapter;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_call_sms_safe);        ListvIEw = (ListVIEw) findVIEwByID(R.ID.lv_blacknumber);        myAdapter=new MyAdapter();        dao = new BlackNumberAdo(this);        infos = dao.findAll();        ListvIEw.setAdapter(myAdapter);        // //添加100条测试数据         Random random=new Random();         for(int i=1;i<=100;i++){         ado.add("18805419000"+i,String.valueOf(random.nextInt(3)+1));         }            }    class VIEwHolder{        public TextVIEw phoneVIEw;         TextVIEw modeVIEw;         ImageVIEw iv_delete;    }    private class MyAdapter  BaseAdapter {        @OverrIDe        int getCount() {             Todo auto-generated method stub            return infos.size();        }        @OverrIDe        public VIEw getVIEw(final  position,VIEw convertVIEw,VIEwGroup parent) {            VIEw vIEw;            VIEwHolder holder= VIEwHolder();            if(convertVIEw==null){                vIEw = VIEw.inflate(CallSmsSafeActivity.,R.layout.List_call_sms_safe_item,);                holder.phoneVIEw=(TextVIEw) vIEw                        .findVIEwByID(R.ID.tv_main_phone);                holder.modeVIEw=(TextVIEw) vIEw                        .findVIEwByID(R.ID.tv_block_mode);                holder.iv_delete=(ImageVIEw) vIEw.findVIEwByID(R.ID.iv_delete);                vIEw.setTag(holder);                System.out.println("创建新的VIEw对象"+position);            }else{                vIEw=convertVIEw;                holder=(VIEwHolder) vIEw.getTag();                System.out.println("使用历史VIEw对象"+position);            }                                    holder.phoneVIEw.setText(infos.get(position).get("phone"));            switch (infos.get(position).get("mode")) {            case "1":                holder.modeVIEw.setText("电话拦截");                break;            case "2":                holder.modeVIEw.setText("短信拦截"case "3":                holder.modeVIEw.setText("全部拦截"default:                ;            }            删除条目            holder.iv_delete.setonClickListener( OnClickListener() {                                @OverrIDe                 onClick(VIEw v) {                    AlertDialog.Builder builder=new AlertDialog.Builder(CallSmsSafeActivity.);                    builder.setTitle("警告");                    builder.setMessage("是否确认删除?");                    builder.setPositivebutton("确认", DialogInterface.OnClickListener() {                                                @OverrIDe                        voID onClick(DialogInterface dialog,1)"> which) {                            infos.remove(position);                            myAdapter.notifyDataSetChanged();                            dao.delete(infos.get(position).get("phone"));                        }                    });                    builder.setNegativebutton("取消",1)">);                    builder.show();                }            });             vIEw;        }        @OverrIDe        public Object getItem( position) {            return ;        }        @OverrIDe        long getItemID(return 0;        }    }     EditText blackNumber;     CheckBox blockCall;     CheckBox blockSms;         * 添加黑名单     * @param v     */     addCallSmsSafe(VIEw v) {        AlertDialog.Builder builder=new AlertDialog.Builder();        VIEw vIEw=VIEw.inflate(this,R.layout.dialog_add_safe_sms,1)">);        builder.setVIEw(vIEw);        final AlertDialog alertDialog=builder.show();        button submit=(button) vIEw.findVIEwByID(R.ID.bt_submit);        button cancel=(button) vIEw.findVIEwByID(R.ID.bt_cancel);        blackNumber=(EditText) vIEw.findVIEwByID(R.ID.et_black_number);        blockCall=(CheckBox) vIEw.findVIEwByID(R.ID.cb_block_call);        blockSms=(CheckBox) vIEw.findVIEwByID(R.ID.cb_block_sms);                submit.setonClickListener( OnClickListener() {            @OverrIDe             onClick(VIEw v) {                String phone=blackNumber.getText().toString().trim();                String mode = "3";                if(TextUtils.isEmpty(phone)){                    Toast.makeText(CallSmsSafeActivity.).show();                }                if(blockCall.isChecked()&&blockSms.isChecked()){                    全部拦截                    mode="3";                }else (blockCall.isChecked()){                    电话拦截                    mode="1"(blockSms.isChecked()){                    短信拦截                    mode="2"{                    Toast.makeText(CallSmsSafeActivity.).show();                }                dao.add(phone,mode);                Map<String,String> info=new HashMap<String,String>();                info.put("phone" onClick(VIEw v) {                alertDialog.dismiss();            }        });    }}

 

总结

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

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存