日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [android] 手机卫士黑名单功能(列表展示) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先把要攔截的電話號碼保存到數據庫中,攔截模式用個字段區分,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; import java.util.Map;import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView;import com.qingguow.mobilesafe.db.ado.BlackNumberAdo;/*** 通訊衛士* * @author taoshihan* */ public class CallSmsSafeActivity extends Activity {private ListView listview;private List<Map<String, String>> infos;@Overrideprotected 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 extends BaseAdapter {@Overridepublic int getCount() {// TODO Auto-generated method stubreturn infos.size();}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {View view = View.inflate(CallSmsSafeActivity.this,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("短信攔截");break;case "3":modeView.setText("全部攔截");break;default:break;}return view;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}} }

?

BlackNumberAdo.java

package com.qingguow.mobilesafe.db.ado;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;import com.qingguow.mobilesafe.db.BlackNumberDBOpenHelper;public class BlackNumberAdo {private BlackNumberDBOpenHelper helper;public BlackNumberAdo(Context context) {helper=new BlackNumberDBOpenHelper(context);}/*** 插入數據* @param phone* @param mode*/public void add(String phone,String mode) {SQLiteDatabase db=helper.getWritableDatabase();ContentValues values=new ContentValues();values.put("phone", phone);values.put("mode", mode);db.insert("blacknumber", null, values);db.close();}/*** 查詢全部* @return*/public List<Map<String,String>> findAll(){SQLiteDatabase db=helper.getReadableDatabase();Cursor cursor=db.rawQuery("select phone,mode from blacknumber", null);List<Map<String,String>> list=new ArrayList<Map<String,String>>();while(cursor.moveToNext()){Map<String,String> info=new HashMap<String, String>();String phone=cursor.getString(0);String mode=cursor.getString(1);info.put("phone", phone);info.put("mode", mode);list.add(info);}cursor.close();db.close();return list;}/*** 修改數據* @param phone* @param mode*/public void update(String phone,String mode) {SQLiteDatabase db=helper.getWritableDatabase();ContentValues values=new ContentValues();values.put("phone", phone);values.put("mode", mode);db.update("blacknumber", values,"phone=?",new String[]{phone});db.close();}/*** 刪除數據* @param phone*/public void delete(String phone){SQLiteDatabase db=helper.getWritableDatabase();db.delete("blacknumber", "phone=?", new String[]{phone});db.close();} }

?

?

BlackNumberDBOpenHelper.java

package com.qingguow.mobilesafe.db;import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper;/*** 黑名單數據庫幫助類* * @author taoshihan* */ public class BlackNumberDBOpenHelper extends SQLiteOpenHelper {public BlackNumberDBOpenHelper(Context context) {super(context, "blacknumber", null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table blacknumber (id integer primary key autoincrement,phone varchar(20),mode varchar(2))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}}

?

?

總結

以上是生活随笔為你收集整理的[android] 手机卫士黑名单功能(列表展示)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。