114.黑名单设置的传统写法1

来源:互联网 发布:中药行业数据 编辑:程序博客网 时间:2024/05/29 04:37

布局文件主布局让黑名单以listView的形式显示activity_call_safe.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView style="@style/TitleStyle"    android:text="黑名单管理"        />    <include         android:id="@+id/list_view_callsafe"        layout="@layout/list_view_callsafe"/>    </LinearLayout>
ListView的布局activity_view_callsafe.xml

<?xml version="1.0" encoding="utf-8"?><ListView xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    </ListView>

每一个条目的布局文件item_call_safe.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >        <TextView         android:id="@+id/tv_number"        android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginLeft="10dp"    android:textColor="@color/black"    android:textSize="20sp"    android:text="13000000000"        />    <TextView         android:id="@+id/tv_mode"        android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:textColor="@color/black"    android:layout_marginLeft="10dp"    android:textSize="20sp"    android:layout_below="@id/tv_number"    android:text="电话拦截"        />    <ImageView         android:layout_width="40dp"    android:layout_height="40dp"    android:layout_marginRight="10dp"    android:layout_alignParentRight="true"    android:background="@drawable/ic_delete_btn"        /></RelativeLayout>

创建数据库BlackNumberOpenHelper .java

package com.ldw.safe.db.dao;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;/* * 黑名单的SQLiteOpenHelper,创建黑名单数据库的表 */public class BlackNumberOpenHelper extends SQLiteOpenHelper{public BlackNumberOpenHelper(Context context) {super(context, "safe.db", null, 1);}//创建数据库的表//blacknumber表名,_id逐渐自动增长,number电话号码,mode拦截模式,电话拦截,短信拦截@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table blacknumber (_id integer primary key autoincrement,number varchar(20),mode varchar(2))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}

黑名单的javaBean。BlackNumberInfo.java

package com.ldw.safe.bean;/* * 黑名单的javaBean */public class BlackNumberInfo {//number黑名单的号码,//mode黑名单的拦截模式1表示全部拦截2表示电话拦截3表示全部拦截private String number;private String mode;public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public String getMode() {return mode;}public void setMode(String mode) {this.mode = mode;}}

数据库的逻辑文件BlackNumberDao.java

package com.ldw.safe.db.dao;import java.util.ArrayList;import java.util.List;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.ldw.safe.bean.BlackNumberInfo;/* * 黑名单数据库的逻辑文件 */public class BlackNumberDao {private BlackNumberOpenHelper helper;public BlackNumberDao(Context context){helper = new BlackNumberOpenHelper(context);}//添加黑名单//number黑名单号码,mode拦截模式,"blacknumber"是表名public boolean add(String number, String mode){SQLiteDatabase db = helper.getWritableDatabase();ContentValues contentValues = new ContentValues();contentValues.put("number", number);contentValues.put("mode", mode);long blacknumber = db.insert("blacknumber", null, contentValues);if(blacknumber == -1){//添加失败return false;}else{return true;}}//通过电话号码删除黑命单//number电话号码,"blacknumber"是表名public boolean delete(String number){SQLiteDatabase db = helper.getWritableDatabase();int rowNumber = db.delete("blacknumber", "number=?", new String[]{number});if(rowNumber == 0){//删除失败return false;}else{return true;}}//修改黑名单的模式public boolean changeNumberMode(String number, String mode){SQLiteDatabase db = helper.getWritableDatabase();ContentValues contentValues = new ContentValues();contentValues.put("mode", mode);int rowNumber = db.update("blacknumber", contentValues, "number=?", new String[]{number});if(rowNumber == 0){//修改失败return false;}else{return true;}}//通过电话号码查找黑名单拦截模式public String findNumber(String number){String mode = "";SQLiteDatabase db = helper.getWritableDatabase();Cursor cursor = db.query("blacknumber", new String[]{"mode"}, "number=?", new String[]{number}, null, null, null);//只需要查询一个if(cursor.moveToNext()){mode = cursor.getString(0);}cursor.close();db.close();return mode;}//查找出所有的黑名单public List<BlackNumberInfo> findAll(){SQLiteDatabase db = helper.getWritableDatabase();List<BlackNumberInfo> blackNumberInfos = new ArrayList<BlackNumberInfo>();Cursor cursor = db.query("blacknumber", new String[]{"number", "mode"}, null, null, null, null, null);//查询所有的所有用whilewhile(cursor.moveToNext()){BlackNumberInfo blackNumberInfo = new BlackNumberInfo();blackNumberInfo.setNumber(cursor.getString(0));blackNumberInfo.setMode(cursor.getString(1));blackNumberInfos.add(blackNumberInfo);}cursor.close();db.close();return blackNumberInfos;}}

activity显示的逻辑文件CallSafeActivity .java

package com.ldw.safe.Activity;import java.util.List;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.ldw.safe.R;import com.ldw.safe.bean.BlackNumberInfo;import com.ldw.safe.db.dao.BlackNumberDao;public class CallSafeActivity extends Activity {private ListView list_view_callsafe;private List<BlackNumberInfo> blackNumberInfos;@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_call_safe);                initUi();        initData();}private void initData() {BlackNumberDao dao = new BlackNumberDao(this);//获取到表的所有数据blackNumberInfos = dao.findAll();//初始化适配器CallSafeAdapter adapter = new CallSafeAdapter();//配置适配器list_view_callsafe.setAdapter(adapter);}private void initUi() {list_view_callsafe = (ListView) findViewById(R.id.list_view_callsafe);}private class CallSafeAdapter extends BaseAdapter{@Overridepublic int getCount() {//获取数据的个数return blackNumberInfos.size();}@Overridepublic Object getItem(int position) {return blackNumberInfos.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {View view = View.inflate(CallSafeActivity.this, R.layout.item_call_safe, null);TextView tv_number = (TextView) view.findViewById(R.id.tv_number);TextView tv_mode = (TextView) view.findViewById(R.id.tv_mode);tv_number.setText(blackNumberInfos.get(position).getNumber());String mode = blackNumberInfos.get(position).getMode();if(mode.equals("1")){tv_mode.setText("电话和短信拦截");}else if(mode.equals("2")){tv_mode.setText("电话拦截");}else if(mode.equals("3")){tv_mode.setText("短信拦截");}return view;}}}



0 0
原创粉丝点击