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

    xiaoxiao2021-04-15  58

    布局文件主布局让黑名单以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拦截模式,电话拦截,短信拦截 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table blacknumber (_id integer primary key autoincrement,number varchar(20),mode varchar(2))"); } @Override public 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); //查询所有的所有用while while(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{ @Override public int getCount() { //获取数据的个数 return blackNumberInfos.size(); } @Override public Object getItem(int position) { return blackNumberInfos.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public 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; } } }

     

    转载请注明原文地址: https://ju.6miu.com/read-671195.html

    最新回复(0)