Android课程---添加黑名单的练习(课堂讲解)
DBHelper.java
package com.hanqi.test3; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log; /**
* Created by Administrator on 2016/4/15.
*/
public class DBHelper extends SQLiteOpenHelper { public DBHelper(Context context) {
super(context, "blacklist.db",null, 1);
} @Override
public void onCreate(SQLiteDatabase db) { db.execSQL("create table black_number (_id integer primary key autoincrement,phone_number varchar)"); Log.e("TAG","onCreate"); } @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
}
BlackNumber.java
package com.hanqi.test3; /**
* Created by Administrator on 2016/4/15.
*/
public class BlackNumber {
private long id;
private String phoneNumber; public BlackNumber(long id, String phoneNumber) {
this.id = id;
this.phoneNumber = phoneNumber;
} public BlackNumber() { } public long getId() {
return id;
} public void setId(long id) {
this.id = id;
} public String getPhoneNumber() {
return phoneNumber;
} public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
} public BlackNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
} @Override
public String toString() {
return "BlackNumber{" +
"id=" + id +
", phoneNumber='" + phoneNumber + '\'' +
'}';
}
}
TestActivity1.java
package com.hanqi.test3; import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.InputType;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast; import java.util.List; public class TestActivity1 extends AppCompatActivity { private ListView lv_1;
private List<BlackNumber> data;
private BlackListAdapter dla; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test1); lv_1 = (ListView)findViewById(R.id.lv_1); //获取数据集合
BlackNumberDAO bd = new BlackNumberDAO(this); data = bd.getAll(); dla = new BlackListAdapter(); //设置适配器
lv_1.setAdapter(dla);
} //实现列表的适配器
class BlackListAdapter extends BaseAdapter
{
@Override
public int getCount() {
return data.size();
} @Override
public Object getItem(int position) {
return data.get(position);
} @Override
public long getItemId(int position) {
return data.get(position).getId();
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
//position:要显示的那条记录 //判断可复用的视图是否为空
if (convertView == null)
{
//获取视图
convertView = View.inflate(TestActivity1.this,android.R.layout.simple_list_item_1,null);
}
//给视图绑定数据
TextView tv =(TextView)convertView.findViewById(android.R.id.text1);
tv.setText(data.get(position).getPhoneNumber()); return convertView;
}
} public void bt1_OnClick(View v)
{
final EditText editText = new EditText(this); editText.setHint("请输入电话号码"); editText.setInputType(InputType.TYPE_CLASS_PHONE); //editText.setLayoutParams(new DrawerLayout.LayoutParams()); //editText.setInputType(); //构造自定义对话框
new AlertDialog.Builder(this)
.setTitle("添加黑名单")
.setView(editText)
.setPositiveButton("添加", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { //构造实体类
BlackNumber blacknumber = new BlackNumber(editText.getText().toString()); //调用数据库操作类DAO,保存数据
BlackNumberDAO blackNumberDAO = new BlackNumberDAO(TestActivity1.this); blackNumberDAO.insert(blacknumber); data.add(blacknumber); //通知刷新
dla.notifyDataSetChanged(); Toast.makeText(TestActivity1.this, "数据保存成功", Toast.LENGTH_SHORT).show();
}
})
.setNeutralButton("取消",null)
.show();
}
}
BlackNumberDAO.java
package com.hanqi.test3; import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log; import java.util.ArrayList;
import java.util.List; /**
* Created by Administrator on 2016/4/15.
*/
public class BlackNumberDAO { //定义成成员变量
private DBHelper dbHelper; public BlackNumberDAO(Context context)
{
//初始化工具类
dbHelper = new DBHelper(context);
} //增
public void insert(BlackNumber blackNumber)
{
//获取数据库连接
SQLiteDatabase sd = dbHelper.getWritableDatabase(); //要添加数据的键值对集合
ContentValues contentValues = new ContentValues(); contentValues.put("phone_number",blackNumber.getPhoneNumber()); //数据添加 contentValues:集合存了键值对
sd.insert("black_number",null,contentValues); //关闭数据库
sd.close(); Log.e("TAG","添加数据成功");
} //删
public void delete(long id)
{ } //改
public void update(BlackNumber blackNumber)
{ } //查
//用List(List里面装的是实体类的实例)返回数据
public List<BlackNumber> getAll()
{
List<BlackNumber> rtn = new ArrayList<BlackNumber>();
// ArrayList:实现类 List:接口 //获取数据库连接
SQLiteDatabase sd = dbHelper.getWritableDatabase(); //查询返回游标
Cursor cursor = sd.query("black_number", null, null, null, null, null, null); //移动游标,获取数据
while (cursor.moveToNext())
{
//构造实体类的实例,放入List
rtn.add(new BlackNumber(cursor.getLong(0),cursor.getString(1)));
} Log.e("TAG","数据数量"+cursor.getCount()); sd.close();
return rtn;
}
}
activity_test1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingTop="16dp"
android:paddingRight="16dp"
tools:context="com.hanqi.test3.TestActivity1"
android:orientation="vertical"> <ListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/lv_1"></ListView>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="添加"
android:onClick="bt1_OnClick"/> </LinearLayout>
效果图:


Android课程---添加黑名单的练习(课堂讲解)的更多相关文章
- Android课程---添加黑名单的练习2(课堂讲解)
实现黑名单的添加.修改.查询和删除,首先得有封装的3个类,便于使用 BlackNumber.java package com.hanqi.test3; /** * Created by Adminis ...
- 一培训机构设计的学习android课程内容:供大家参考
转自:http://www.cnblogs.com/csj007523/archive/2011/06/16/2082682.html 一培训机构设计的学习android课程内容:供大家参考 第一阶段 ...
- Android下添加新的自定义键值和按键处理流程
Android下添加新的自定义键值和按键处理流程 说出来不怕大家笑话,我写这篇博客的原因在于前几天去一个小公司面试Android系统工程师,然后在面试的时候对方的技术总监问了我 ...
- Android 数据库管理— — —添加数据
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" ...
- Android课程---进度条及菜单的学习
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据
solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据 上一节我们完成了solr连接数据库,细心的朋友会发现一个问题,就是solr其实和语言没有任何关系,配置完成后任何语 ...
- 在Xcode5和Android Studio添加工程间的依赖
正在编辑中,尚未完成 先看看ios的target是什么,请先参看http://www.cocoachina.com/bbs/read.php?tid-10884.html做个大概了解 这里有一篇文章, ...
- Eclipse / android studio 添加第三方jar包 步骤
eclipse 将第三方包放到libs文件夹后并没有引用. 基本步骤分为3步,具体介绍如下: 打开自己的Eclipse,在自己的Android工程上名上右键->Build Path ->C ...
- Android RecyclerView添加Header头部
Android RecyclerView添加Header头部 Android RecyclerView不像以前的ListView那样直接添加头部,如果要给RecyclerView增加头部,则需要 ...
随机推荐
- Linux mkdir 创建文件夹命令
介绍: 该命令创建指定的目录名,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录 语法: mkdir [-m] [-p] 目录名 选项介绍: -m: 对新建目录设置 ...
- 在浏览器上直接输入url 时,中文传参乱码问题
这样的地址 xxx.asp?name=中国 ,通过 超链接打开这个链接 ,xxx.asp能够成才接收参数,但是如果将地址直接放到浏览器地址栏上,回车, xxx.asp就无法正确接收中文参数,一直显示 ...
- Linux学习之一--VI编辑器的基本使用
vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态 ...
- mpp文件转换成jpg图片,可以用pdf文件做中转站
用project软件做了一个表,发现不能转换成图片,先把mpp文件转换成pdf文件,然后用PS打开pdf文件,存储为jpg格式就行了
- Codeforces 696 D. Legen...
Description 每个字符串有些价值,问生成长度为 \(l\) 的字符串最多能获得多少价值,总字符数不超过 \(200\), \(l\leqslant 10^{14}\) . Sol AC自动机 ...
- 双击导航栏自动滑动ListView到顶部
有些app都实现了双击导航栏让页面的list自动滑动到顶部的feature. 先实现一个继承于OnTouchListener的监听多次点击事件的监听器,通过callback把连续点击的次数返回给客户代 ...
- 【原创】Redux 卍解
Redux 卍解 Redux - Flux设计模式的又一种实现形式. 说起Flux,笔者之前,曾写过一篇<ReFlux细说>的文章,重点对比讲述了Flux的另外两种实现形式:『Facebo ...
- JSON.stringify()和JSON.parse()
parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...
- 8.7 jquery-dom manipulation
// 获得设定内容 [text(),html(),val()]; // 获得设定属性 [attr(),removeAttr()]; // 获得设定 css class [addClass,remove ...
- java19
1:异常(理解) (1)程序出现的不正常的情况. (2)异常的体系 Throwable |--Error 严重问题,我们不处理. |--Exception |--RuntimeException 运行 ...