当前位置:数据库 > SQLite >>

android开发我的新浪微博客户端-载入页面sqlite篇(1.2)

 \

通过上一篇文章 android开发我的新浪微博客户端-载入页面UI篇(1.1)http://www.zzzyk.com/kf/201203/124461.html 已经完成了载入页面的UI部分的实现,效果如上图,接下来在上面的基础上完成载入页面的功能代码。

      首先说明一下新浪微博提供了OAuth和Base OAuth两种认证方式(如果不知道什么是OAuth和Base OAuth请自己google一下恶补,同时接下来的2篇随笔也会对这方面进行详细的说明以及具体实现),本项目是采用OAuth认证方式,采用这种方式就需要有用户的新浪UserID、Access Token、Access Secret这3样东西才能自由便利的调用新浪的开放接口,本项目是这样做的当用户第一次使用软件时进行授权认证获取这3样东西的时候存储到sqlite库中以便用户下次使用时不需要重新进行繁琐的授权认证操作直接从sqlite库中读取出来即可,由于这样的需求载入页面的功能设定是这样:当用户打开软件显示载入页面时开始检查sqlite库中是否已经保存有用户的新浪微博的UserID号、Access Token、Access Secret的记录,如果一条记录都没有那就说明用户是第一次使用本软件那么跳到认证授权页面进行授权认证操作(认证授权功能在接下来的两篇中进行实现讲解)获取这3个值保存到sqlite库中,如果已经包括了记录,那么读取这些记录的UserID号、Access Token、Access Secret值然后根据这3个值调用新浪的api接口获取这些记录对应的用户昵称和用户头像图标等信息。

      上面功能设定中涉及到sqlite数据库的创建、数据表的创建、数据记录的添加、数据记录的读取等操作,这里新建名为SqliteHelper.java类文件提供sqlite数据表的创建、更新等,代码如下

[java] public class SqliteHelper extends SQLiteOpenHelper{ 
 
    //用来保存  
 
UserID、Access Token、Access Secret 
 
的表名 
 
    public static final String TB_NAME="users"; 
 
    public SqliteHelper(Context context, String name, CursorFactory factory, int version) { 
 
        super(context, name, factory, version); 
 
    } 
 
    //创建表  
 
    @Override 
 
    public void onCreate(SQLiteDatabase db) { 
 
        db.execSQL("CREATE TABLE IF NOT EXISTS "+ 
 
                TB_NAME+"("+ 
 
                UserInfo.ID+" integer primary key,"+ 
 
                UserInfo.USERID+" varchar,"+ 
 
                UserInfo.TOKEN+" varchar,"+ 
 
                UserInfo.TOKENSECRET+" varchar,"+ 
 
                UserInfo.USERNAME+" varchar,"+ 
 
                UserInfo.USERICON+" blob"+ 
 
                ")" 
 
                ); 
 
        Log.e("Database","onCreate"); 
 
    } 
 
    //更新表  
 
    @Override 
 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
 
        db.execSQL("DROP TABLE IF EXISTS " + TB_NAME); 
 
        onCreate(db); 
 
        Log.e("Database","onUpgrade"); 
 
    } 
 
    //更新列  
 
    public void updateColumn(SQLiteDatabase db, String oldColumn, String newColumn, String typeColumn){ 
 
        try{ 
 
            db.execSQL("ALTER TABLE " + 
 
                    TB_NAME + " CHANGE " + 
 
                    oldColumn + " "+ newColumn + 
 
                    " " + typeColumn 
 
            ); 
 
        }catch(Exception e){ 
 
            e.printStackTrace(); 
 
        } 
 
    } 
 

public class SqliteHelper extends SQLiteOpenHelper{

    //用来保存

UserID、Access Token、Access Secret

的表名

    public static final String TB_NAME="users";

    public SqliteHelper(Context context, String name, CursorFactory factory, int version) {

        super(context, name, factory, version);

    }

    //创建表

    @Override

    public void onCreate(SQLiteDatabase db) {

        db.execSQL("CREATE TABLE IF NOT EXISTS "+

                TB_NAME+"("+

                UserInfo.ID+" integer primary key,"+

                UserInfo.USERID+" varchar,"+

                UserInfo.TOKEN+" varchar,"+

                UserInfo.TOKENSECRET+" varchar,"+

                UserInfo.USERNAME+" varchar,"+

                UserInfo.USERICON+" blob"+

                ")"

                );

        Log.e("Database","onCreate");

    }

    //更新表

    @Override

    public void onUpgr

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,