【发布时间】:2013-08-12 19:38:01
【问题描述】:
我正在尝试实现一个导航抽屉。 “Fragment1”是一个列表片段:
public class Fragment1 extends ListFragment {
private List<String> musicList;
public static ListFragment newInstance(Context context) {
Fragment1 f = new Fragment1();
return f;
}
但是我不能使用 fragmenttransaction 来替换主要活动中的片段:
public class MainActivity extends AbstractNavDrawerActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ( savedInstanceState == null ) {
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, new Fragment1()).commit();
}
}
@Override
protected void onNavItemSelected(int id) {
switch ((int)id) {
case 101:
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, new Fragment1()).commit();
break;
case 102:
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, new Fragment2()).commit();
break;
}
}
}
replace 方法下面有一条红线,上面写着:
FragmentTransaction 类型中的方法 replace(int, Fragment) 不适用于参数 (int, Fragment1)"
我该怎么办?
【问题讨论】:
-
如果您使用的是sherlock,您需要将您的片段定义为
SherlockListFragment。 -
您的 Fragment1 属于 ListFragment 类型。并且编译器正在寻找 Fragment。
-
如何更改它以查找列表片段?
标签: java android fragment android-listfragment