【发布时间】:2015-05-20 23:53:26
【问题描述】:
片段管理器如下所示:
FragmentManager fragmentManager = getSupportFragmentManager();
switch (position) {
case 0:
fragmentManager.beginTransaction()
.replace(R.id.container, ReviewFragment.newInstance(position + 1))
.commit();
break;
case 1:
fragmentManager.beginTransaction()
.replace(R.id.container, RedeemFragment.newInstance(position + 1))
.commit();
break;
case 2:
fragmentManager.beginTransaction()
.replace(R.id.container, MyAccountFragment.newInstance(position + 1))
.commit();
break;
case 3:
ParseUser.logOut();
presentLoginActivity();
break;
}
而且错误就行了:
case 0:
fragmentManager.beginTransaction()
.replace(R.id.container, ReviewFragment.newInstance(position + 1))
.commit();
错误显示:
Wrong second argument type. Found: 'blah.blah.blah.MainActivity.ReviewFragment', required: 'android.support.v4.app.Fragment'
CameraFragment 来自 cwac-camera-0.6.12.jar
public static class ReviewFragment extends CameraFragment
/**
* The fragment argument representing the section number for this
* fragment.
*/
private static final String ARG_SECTION_NUMBER = "section_number";
/**
* Returns a new instance of this fragment for the given section
* number.
*/
public static ReviewFragment newInstance(int sectionNumber) {
ReviewFragment fragment = new ReviewFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
public ReviewFragment() {
}
...
}
我知道 CameraFragment 是 android.app.Fragment 并且我尝试更改 getSupportFragmentManager();到 getFragmentManager();并将所有其他 Fragment 子类更改为 android.app.Fragment 的子类,但它仍然不起作用。想法?
【问题讨论】:
-
如果您的最低 SDK >= 11,您可以使用带有
getFragmentManager()的原生片段以及带有getSupportFragmentManager()的支持片段。 cwac-camera 库也已弃用,不是吗? -
@EugenPechanec:它还没有被弃用,虽然我正在开发一个替代库,它克服了原始库的一些关键限制。
-
嗨@CommonsWare 我已经尝试过常规安装和 v9 安装,但由于各种原因都无法正常工作。这是因为(接近)弃用吗?还是我最有可能搞砸了。
-
@BryceLanglotz:我无法为您提供未指明的“各种原因”。我昨天发布了一个答案,其中推荐了一种创建适合您的片段的方法。如果您在使用该方法时遇到问题,请在该答案上发布 cmets,并详细说明这些问题是什么。
标签: android android-camera commonsware-cwac