上一篇文章列出了在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之sqliteDatabase,sqliteOpenHelper,ContentProvider
  2. Android中的权限问题
  3. 安卓的优缺点
  4. 谷歌将大改Android用户体验 欲取消自定义UI
  5. android 一个SQLite数据库多个数据表的基本使用框架 (带demo)
  6. Android中Task、Activity、BackStack(栈)的关系
  7. Android(安卓)SQLiteOpenHelper
  8. Android中登录布局展示Activity
  9. Android登录界面开发及响应;页面跳转;传参

随机推荐

  1. Android系列教程之十:Intents and Intent
  2. 手动更新 Android(安卓)SDK
  3. android 笔记 --- Android应用程序的权限
  4. android字体加粗的方法
  5. 从Android界面开发谈起
  6. android 中xml文件中出现 Attr.value mis
  7. android 自定义控件属性
  8. 对android的android:taskAffinity初识
  9. gihub上不错的几个Android(安卓)Project
  10. 在Android中查看和管理sqlite数据库