
安卓項(xiàng)目的基類.png
Fragment
-
Fragment表示 FragmentActivity中的行為或界面的一部分。
- 一個(gè) Activity 中可以組合多個(gè)片段,從而構(gòu)建多窗格界面,并在多個(gè) Activity 中重復(fù)使用某個(gè)片段。
- 可以將片段視為 Activity 的模塊化組成部分,它具有自己的生命周期,能接收自己的輸入事件,并且您可以在 Activity 運(yùn)行時(shí)添加或移除片段(這有點(diǎn)像可以在不同 Activity 中重復(fù)使用的“子 Activity”)。
- 當(dāng)您將片段作為 Activity 布局的一部分添加時(shí),其位于 Activity 視圖層次結(jié)構(gòu)的某個(gè) ViewGroup中,并且片段會(huì)定義其自己的視圖布局。
- 您可以通過(guò)在 Activity 的布局文件中聲明片段,將其作為
<fragment>元素插入您的 Activity 布局,或者通過(guò)將其添加到某個(gè)現(xiàn)有的ViewGroup,利用應(yīng)用代碼將其插入布局。
- 您可以通過(guò)在 Activity 的布局文件中聲明片段,將其作為
BaseFragment 里面有用到了泛型(相當(dāng)于C艸中的模版)
public abstract class BaseFragment<V,T extends BasePresenter<V>> extends Fragment {
...
}
看下泛型方法的定義:該方法在調(diào)用時(shí)可以接收不同類型的參數(shù)。根據(jù)傳遞給泛型方法的參數(shù)類型,編譯器適當(dāng)?shù)靥幚砻恳粋€(gè)方法調(diào)用。
- 所有泛型方法聲明都有一個(gè)類型參數(shù)聲明部分(由尖括號(hào)分隔),該類型參數(shù)聲明部分在方法返回類型之前(在下面例子中的<E>)。
- 每一個(gè)類型參數(shù)聲明部分包含一個(gè)或多個(gè)類型參數(shù),參數(shù)間用逗號(hào)隔開(kāi)。一個(gè)泛型參數(shù),也被稱為一個(gè)類型變量,是用于指定一個(gè)泛型類型名稱的標(biāo)識(shí)符。
- 類型參數(shù)能被用來(lái)聲明返回值類型,并且能作為泛型方法得到的實(shí)際參數(shù)類型的占位符。
- 泛型方法體的聲明和其他方法一樣。注意類型參數(shù)只能代表引用型類型,不能是原始類型(像int,double,char的等)。
demo
public class GenericMethodTest
{
// 泛型方法 printArray
public static < E > void printArray( E[] inputArray )
{
// 輸出數(shù)組元素
for ( E element : inputArray ){
System.out.printf( "%s ", element );
}
System.out.println();
}
public static void main( String args[] )
{
// 創(chuàng)建不同類型數(shù)組: Integer, Double 和 Character
Integer[] intArray = { 1, 2, 3, 4, 5 };
Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };
Character[] charArray = { 'H', 'E', 'L', 'L', 'O' };
System.out.println( "整型數(shù)組元素為:" );
printArray( intArray ); // 傳遞一個(gè)整型數(shù)組
System.out.println( "\n雙精度型數(shù)組元素為:" );
printArray( doubleArray ); // 傳遞一個(gè)雙精度型數(shù)組
System.out.println( "\n字符型數(shù)組元素為:" );
printArray( charArray ); // 傳遞一個(gè)字符型數(shù)組
}
}