用較早版本的APIs實現抽象類

2021-06-16 15:14:19 字數 1452 閱讀 5993

這節課程我們討論如何建立乙個實現類,即能對應新版本的api,又能夠保持對老版本api的支援。

為了保持向後相容,我們需要用老版本平台的ui框架特性來實現新本版的ui框架特性,這是一件非常具有挑戰性的任務。在很多情況下,我們是完全可以做到這一點的,請看下邊的例子:

一般情況下,我們無法找到乙個完美的方案,可以把新ui元件的完全的移植到舊版本的裝置上。在這個問題上我們應該多考慮一下使用者體驗,使用老版本裝置的使用者可能對新版本的設計模式並不熟悉。因此我們在實現的時候要考慮相同的功能實現盡量用使用者熟悉的方式來實現。很多情況下我們不必過於擔心這個問題,如果這個新的ui元件在應用程式的環境中設計的比較優秀(比如:'''action bar''')或者互動模式非常簡單和直觀的(比如:'''swip views'''應用 viewpager。

我們可以用tabwidget和tabhost 我們也可以用horizontally laid-out button部件來實現'''actionbar'''標籤。因為我們使用了android 2.0 (eclair)以下的apis,所以我們的實現類名字叫做tabhelpereclair和compattabeclair:

圖1:eclair實現tabs的類圖

1

2 34 5

6 78 9

1011

1213

1415

16

public

class

compattabeclair

extends

compattab

...// do the same for other properties (icon, callback, etc.)

}

實現tabhelpereclair時需要需要用到tabhost部件來建立tabhost.tabspec物件和tab indicators:

1

2 34 5

6 78 9

1011

1213

1415

1617

1819

2021

2223

2425

26

public

class

tabhelpereclair

extends

tabhelper

}public

void

addtab

(compattab

tab)

// the other important method, newtab() is part of

// the base implementation.

}

現在我們有compattab和tabhelper的兩個實現類了,乙個用在android 3.0或者更新的版本的apis中,乙個用在android 2.0或更新版本的apis中,下節課我們將討論如何在我們的應用中使用這樣兩個實現類。

介面 抽象類 實現類

如上圖介面類list只具有方法,無法例項化,我們在使用時必須通過下面的實現類來使用list的方法。用乙個類 implements 介面,這樣這個類就可以使用介面中的方法了。2.不用implements,通過api文件下的另請參見 方法建立抽象類物件,2.1 比如介面connection connec...

C 抽象類的實現

1 什麼是抽象類?答 簡單的說,抽象類就是至少有乙個純虛函式的類。2 抽象類的作用?答 抽象類的主要作用就是為它所組織的繼承層次結構提供乙個公共的基類,這樣它就具有公有行為的特徵,其它派生的類可以從這個公共的基類中繼承和實現介面,通過抽象類多型的使用其中的成員函式。抽象類案例 include inc...

python抽象類 抽象方法的實現

由於python沒有抽象類 介面的概念,所以要實現這種功能得abc.py這個類庫,具體方式如下 coding utf 8 import abc 抽象類 class studentbase object metaclass abc.abcmeta abc.abstractmethod defstudy...