本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 658|回复: 0
打印 上一主题 下一主题

Android菜鸟饭团#Udacity Android#第十一课 活动笔记

[复制链接]
跳转到指定楼层
1#
发表于 2015-6-11 16:16:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Android菜鸟饭团#Udacity Android#第十一课 活动笔记

就framework而言,所有的数据都通过content provider处理。
包括内置的content observers 将会自动更新你的UI
但首先,丹已经准备好向你展示如何建立一个content provider了
我们将使用ContentProvider来帮助我们高效地从互联网同步数据
创建一个内容Provider有几个步骤:
1:首先创建一个xxprovider的class,它是extendscontentprovider的。
2:在这个xxprovider中首选定义要创建的数据库的databasename,以及databaseversion
3:非常重要的是:建立database的authority。值得注意的是这个authority必须和配置文件中的authority必须是一致的
4:创建这个数据库的要创建的数据表的名字tablename
5:创建外部通过访问数据表的Uri。(public static final Uri PENDINGLIST_CONTENT_URI = Uri.parse("content://"
           + BrowserProvider.AUTHORITY + "/"
           +BrowserProvider.PENDINGLIST_TABLE_NAME);)值得注意的是这里必须是Uri而不是url。这个Uri是由三部分来组成。Content://和authority以及数据表。
6:定义需要创建数据表的一些属性列。然后可以用一个数组将这些属性列来封装起来
7:定义一个UriMacther,它的作用是当有多个数据表的时候,用来匹配当前操作的是哪个数据表的Uri
private static final UriMatcher sUriMatcher;
    static {
       sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
       sUriMatcher.addURI(AUTHORITY, BOOKMARK_TABLE_NAME, BOOKMARK_URI);
       sUriMatcher.addURI(AUTHORITY, PENDINGLIST_TABLE_NAME, PENDINGLIST_URI);
       sUriMatcher.addURI(AUTHORITY, FOLDER_TABLE_NAME, FOLDER_URI);
    }
8:在这个xxprovider中需要定义一个内部类
   Databasehleper它是继承了SQLiteOpenHelper,这个内部类有一个构造函数,已经重写了两个方法。
DatabaseHelper(Context context){
           super(context, DATABASE_NAME, null, DATABASE_VERSION);
       }
@Override
       public void onCreate(SQLiteDatabase db) {
           db.execSQL(“创建数据表的语句”
            
);
       }
       @Override
       public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
         
           db.execSQL("DROP TABLEIF EXISTS " + FOLDER_TABLE_NAME);
           onCreate(db);
       }
9:定义databasehleper这个类的一个对象,用于xxprovider来操作
10什么叫外键约束?
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的。
步骤
  • 首先给loader一个常量,同时需要加入一个projection,(用来存放想要从数据库里获取的数据组)
  • 在onCreateLoader创建新的Cursor Loader
  • 修改onLoadFinished
【处理intent问题】
  • 首先创建一个成员变量

【权限问题】
学习测试的阶段:
  • 空间的OnClick属性设置点击事件的响应的方法名。
当类的代码较多,方法和内部类较多时,这种方式的代码管理不太方便。
  • 匿名内部类的方式;适用于当前的监听器没有复用性,并且项目代码较大时,方便代码的管理。
  • 内部类的实现方式:适用于监听器具有复用性。
  • Activity实现接口。适用于按钮较多,但每个按钮的响应代码较短。
  • 外部类实现接口。适用于监听器具有复用价值。有利于避免代码的混淆。

【书记员:刘鑫】



每一个技术小白都有一个成为大神的梦想,现在Android菜鸟饭团就给你这个成就梦想的机会。我们提供最新的Android技术教学,只要你又耐心和毅力就一定会在这里有所收获。
Android菜鸟饭团南阳GDG组织发起,秉承着开放、分享、创新的原则,希望通过GDG社区的力量能够给更多的想要学习Android开发技术的小白们创造一个学习,交流,分享的环境。同往常的GDG活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。
把你的个人信息和申请理由快快发送到android@chuang1.net,前来加入我们吧

ChinaGDG.com
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表