zoukankan      html  css  js  c++  java
  • 安卓天天练练(十五)改造BasicSyncAdapter

    谷歌的官方示例BasicSyncAdapter是Android Studio工程,

    把它依样画葫芦到Eclipse上,然后改造成我需要的样式。

    看官方示例源码的时候,看到EntryListActivity,名字长得好官方啊,查查

    EntryListActivity.java

    package com.example.android.basicsyncadapter;
     
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
     
    /**
     * Activity for holding EntryListFragment.
     */
    public class EntryListActivity extends FragmentActivity {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_entry_list);
        }
    }

    谷歌大神说这个家伙就是做basicsyncadapter的时候建的Activity,不是什么官方物体,是FragmentActivity的衍生物。

    而另一个ListAcitvity的东东就没这么简单了,

    java.lang.Object
       ↳ android.content.Context
         ↳ android.content.ContextWrapper
           ↳ android.view.ContextThemeWrapper
             ↳ android.app.Activity
               ↳ android.app.ListActivity
    虽然也是Activity的衍生物,但已经成为了内建类,被别人拿去继承了:... extends ListActivity

    Adapter 是什么?(适配器)

    Adapter本身只是一个接口,它派生了ListAdapter、SpinnerAdapter两个子接口。ListAdapter为AbsListView提供列表项、SpinnerAdapter为AbsSpinnerAdapter提供列表项。几乎所有的Adapter都继承了BaseAdapter,而BaseAdapter同时实现了ListAdapter和SpinnerAdapter两个接口,因此BSEAdapter及其子类可以同时为ABSListView和AbsSpinner提供列表项。

    另外android-common-tookit 还为adapter包设计了三类Adapter(继承自官方的Adapter):CommonAdapter、CommonPagerAdapter、HolderAdapter。

    Android是完全遵循MVC模式设计的框架,Activity是Controller,layout是View 。因为layout有数种布局,很多数据不能直接绑定上去,因此Android引入了Adapter机制,作为复杂数据的展示的转换载体,各种Adapter只是转换的方式和能力不一样。

    Adapter常用来管理数据,使数据绑定到控件变得更简单灵活(比如列表的数据,网格的数据),为容器提供子视图,利用视图的数据和元数据来构建每个子视图。

    (思路)比如这样  bear  调用了 monkey  的方法a 但是a方法的参数改了 , 这样bear 的代码也得改;  在中间加一个adapter,叫abc 这样bear 调用abc,abc调用monkey ;当monkey 的a方法发生改变时,不用改bear ,改abc就可以了。 这样可以保证变化性集中到abc(个人觉得adapter很像支付宝t.t)

    而其他类似的常用实现类adapter,谷歌大神是怎么去实现他们的呢?

    BaseAdapter:通常用于被扩展,扩展BaseAdapter可以对各项列表项进行最大限度的定制,extends Object

    ArrayAdapter:简单、易用的Adapter常用于将数组或者list集合的多个值包装成多个列表项,extends BaseAdapter

    SimpleAdapter:功能强大,用于将 list集合的多个对象包装成多个列表项,extends BaseAdapter

    SimpleCusorAdapter:与SimpleAdapter基本相似,只能用于包装Cursor提供的数据extends ResourceCursorAdapter

    今天要练的basicsyncadapter并不是一个内建adapter,只是sample..(∩_∩)

    BasicSyncAdapter
    This sample demonstrates using SyncAdapter to fetch background data for an app that doesn't require a user-visible account type or 2-way synchronization. This sample periodically downloads the feed from the Android Developer Blog and caches the data in a content provider. At runtime, the cached feed data is displayed inside a ListView.
  • 相关阅读:
    最长有效括号
    C++ 环形缓存区的实现
    vector的原理与底层实现
    聚合分析与分组
    求两个数的最大公约数
    单例模式
    工厂方法模式
    责任链模式
    适配器模式
    策略模式
  • 原文地址:https://www.cnblogs.com/haimingpro/p/4819245.html
Copyright © 2011-2022 走看看