上一篇文章列出了在Android上对数据库进行操作的基本流程,及简单的增,删,查的方法。这一篇实现添加用户,查找用户的方法调用。UserInfo类请参考上一篇文章。

在Android中,我们通过ContentValues往数据库中传值,屏蔽了复杂了insert语句,十分方便。首先结合Android:SNS客户端开发二:获取账号资料中,我们得到的用户信息,声明一个ContentValue对象。代码:

ContentValues values = new ContentValues();values.put("userid", user_id);values.put("name", name);values.put("nickname", screen_name);values.put("access_token", access_token);values.put("access_secret", access_secret);values.put("type", "sina");values.put("icon", ImageUtil.getBytesFromUrl(headUrl));

以上的各个字段信息都是在获取账号资料放中得到的。然后我们调用上篇文章中DBOperate中的insert方法,将用户信息插入到数据库中。

if (!dboperate.isExist(values)) {dboperate.insertUser(values);Toast.makeText(context, "添加账号成功", Toast.LENGTH_LONG).show();} else {Toast.makeText(context, "该账号已存在", Toast.LENGTH_LONG).show();}

先判断用户数据是否已经在数据库里,如果不存在则插入到数据库中,若存在则显示账号已存在。

那么到这里,我们的数据库操作基本就完成了。下一篇会开始介绍发送一篇微博的界面设计。

补充:我们可以看到在第一段代码中有这么一句话

values.put("icon", ImageUtil.getBytesFromUrl(headUrl));

在上一篇中,我们在建立user表时,将icon(头像)的数据类型设置为blob,也就是二进制字段。那么我们在将用户头像存入数据库的时候,需要从网络上拉取到用户头像文件,并转化成二进制信息之后再存入数据库。附上ImageUtil中的getBytesFromUrl方法代码:

public class ImageUtil {public static byte[] getBytesFromUrl(String url) throws Exception {return readInputStream(getRequest(url));}public static byte[] readInputStream(InputStream inStream) throws Exception {ByteArrayOutputStream outSteam = new ByteArrayOutputStream();byte[] buffer = new byte[4096];int len = 0;while ((len = inStream.read(buffer)) != -1) {outSteam.write(buffer, 0, len);}outSteam.close();inStream.close();return outSteam.toByteArray();}public static InputStream getRequest(String path) throws Exception {URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");conn.setConnectTimeout(5000);if (conn.getResponseCode() == 200) {return conn.getInputStream();}return null;}}

更多相关文章

  1. 谷歌将大改Android用户体验 欲取消自定义UI
  2. android 一个SQLite数据库多个数据表的基本使用框架 (带demo)
  3. android判断用户是否已登陆详细代码
  4. android保存用户名密码
  5. Android studio 开发一个用户登录界面
  6. android升级数据库(Sqlite)简单示例
  7. Android Room 数据库
  8. android数据库操作
  9. sqlit导入外部数据库查找数据方法

随机推荐

  1. 一个AMS、PMS、WMS竞争锁引起死锁无法开
  2. android 验证码输入框
  3. Google TV 2.0:开发者终于获得正式版 SDK
  4. 自定义View:Android(安卓)仿 PS 选色板
  5. Android源码下载与编译之emulator与adb
  6. android创建快捷方式来打开应用中特定的A
  7. Android(安卓)XX 支付 SDK 初体验
  8. Android使用Google Map服务 - 根据GPS信
  9. Assets 与 Res android的两大资源的获取
  10. Android(安卓)ROM开发(三)——精简官方ROM