【发布时间】:2012-03-01 02:16:45
【问题描述】:
我有一个ListFragment:
public class MyListFragment extends ListFragment{
...
}
为了在我的 Android 2.1 API 7 项目中使用 Fragment,我使用了support package。 (支持包的一切都配置好了)
在我的主机Activity看起来像:
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
public class FragmentNavActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
FragmentManager fMgr = getSupportFragmentManager();
FragmentTransaction fTrans = fMgr.beginTransaction();
MyListFragment myListFragment = new MyListFragment();
fTrans.add(android.R.id.content, myListFragment).commit(); //problem here
...
}
}
问题是FragmentTransaction 的.add(int, Fragment) 方法接受带有Fragment 类型的第二个参数,但是,我有ListFragment,这是此方法不可接受的。
那么,如何添加 ListFragment 和 FragmentTransaction ?
【问题讨论】:
-
MyListFragment 扩展了 android.support.v4.app.ListFragment?
-
Ovidiu,你是对的,我对 ListFragment 的导入有误。谢谢!但是新的问题是,我从v4.app.ListFragment而不是android.app.ListFragment导入后,无法再在ListFragment中使用onAttach(Activity hostActivity)方法,如何解决这个问题?
-
@Leem.fin 你应该可以使用它。我建议你列出所有导入的 ListFragment 的代码来解决这个问题。
标签: android android-layout android-emulator android-intent android-fragments