FragmentActivity呼叫add方法報錯
import
android.app.Fragment;
改為
import
android.support.v4.app.Fragment
|
首先需要匯入android-support-v4.jar包,方法見下:
進入Android\sdk\extras\android\support\v4,將其中的android-support-v4.jar複製,拷貝到android專案的app/libs下,右鍵點選jar檔案,點選Add As Library,ok。
(1)在自定義fragment類時必須繼承android-support-v4下的fragment,而不是android.app.fragment。
(2)Activity檔案中繼承的是android-support-v4下的fragmentActivity(ps:v4中沒有activity類)。
重點來了,當使用
getFragmentManager().beginTransaction().add(R.id.container,new Fragment()).commit();
來給佈局載入fragment時,add方法會報錯。
這是因為v4包中的fragment並沒有使用getFragmentManager()這個方法,而是使用了getSupportFragmentManager(),而前者只在android.app.activity中有定義,此時將上述載入語句改為:
getSupportFragmentManager().beginTransaction().add(R.id.container,new Fragment).commit();即可通過
以下內容轉載自:http://www.xuebuyuan.com/2122132.html
android.support.v4.app.Fragment和android.app.Fragment區別
1.最低支援版本不同
android.app.Fragment 相容的最低版本是android:minSdkVersion="11" 即3.0版
android.support.v4.app.Fragment 相容的最低版本是android:minSdkVersion="4" 即1.6版
2.需要導jar包
fragment android.support.v4.app.Fragment 需要引入包android-support-v4.jar
3.在Activity中取的方法不同
android.app.Fragment使用 (ListFragment)getFragmentManager().findFragmentById(R.id.userList) 獲得 ,繼承Activity
android.support.v4.app.Fragment使用 (ListFragment)getSupportFragmentManager().findFragmentById(R.id.userList) 獲得 ,需要繼承android.support.v4.app.FragmentActivity