android.app.Fragment与android.support.v4.app.Fragment不一致

在看法中用到的Fragment在类型转换的时候很容易出现这种问题:

对比代码:

	class MyFragmentPagerAdapter extends FragmentPagerAdapter{

		public MyFragmentPagerAdapter(FragmentManager fm) {
			super(fm);
			// TODO Auto-generated constructor stub
		}

		@Override
		public Fragment getItem(int arg0) {
			// TODO Auto-generated method stub
			Fragment ft = null;
			switch (arg0) {
			case 0:
				ft = new MainPaperFragment();
				break;

			default:
				break;
			}
			return ft;
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return MainActivity.this.tabTitle.length;
		}
	}

与:

import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.kuhua.R;

public class MainPaperFragment extends Fragment {

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		View MainPaperFragmentView = inflater.inflate(R.layout.mainpaperfragmentview, container,false);
		return MainPaperFragmentView;
	}

	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onActivityCreated(savedInstanceState);
	}
}

在上述fragment中 Fragment ft = new MainPaperFragment()本质上没有错,是一种多态,但是一般开发中总容易报错;原因当然在自己,我们在用Fragment的时候大体上知道是导入的import android.support.v4.app.Fragment但是在自定义Fragment的时候容易直接用了系统的import android.app.Fragment这样就造成了所使用的api不一致。解决的方法就是记得全部都用导入的import android.support.v4.app.Fragment就ok了!

时间: 2024-11-05 15:54:06

android.app.Fragment与android.support.v4.app.Fragment不一致的相关文章

[转]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

Attempt to write to field 'android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.mFragmentManager' on a null object reference

E/AndroidRuntime﹕ FATAL EXCEPTION: mainProcess: org.example.magnusluca.drawertestapp, PID: 3624java.lang.NullPointerException: Attempt to write to field 'android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.mFragmentManager' on

java.lang.ClassCastException:fragment cannot be cast to android.support.v4.app.Fragment

已启动APP后台就报了这个错误! java.lang.ClassCastException:fragment cannot be cast to android.support.v4.app.Fragment Java.lang.classcastexception:片段不能被转换为android.support.v4.app.fragment 原因是因为在使用继承Fragment的时候 导错包了:import android.support.v4.Fragment; 正确的包:import a

android.support.v4.app.Fragment 和 android.app.Fragment区别

今天在公司遇到一个android.app.Fragment 和android.support.v4.app.Fragment 的问题. (1)android.app.Fragment:兼容的最低版本是android:minSdkVersion="11"因此你的应用不能兼容3.0以下的应用. 可以使用<fragment>标签的,这点很重要,如果是用android.support.v4.app.Fragment的话,是不能是用<fragment>标签的,会抛出and

cannot be cast to android.support.v4.app.Fragment

android.app.Fragment as stated in the imports. Change the import to android.support.v4.app.Fragment

android fragment(android.support.v4.app.Fragment和android.app.Fragment

(1)android.app.Fragment:兼容的最低版本是android:minSdkVersion="11" 因此你的应用不能兼容3.0以下的应用. 可以使用<fragment>标签的,这点很重要,如果是用android.support.v4.app.Fragment的话,是不能是用<fragment>标签的,会抛出android.view.InflateException: Binary XML file line #7: Error inflatin

android.support.v4.app.Fragment vs android.app.Fragment 的区别

android.support.v4.app.Fragment vs android.app.Fragment 的区别 我开过平板相关应用,用了Fragment来处理.后来重新开发另外一个应用,直接引用了原来布局和代码, 我用的是android.support.v4.app.fragment居然死活通过.总是报错 “android.view.InflateException: Binary XML file line #7: Error inflating class fragment” 往下推

android.app.FragmentManager 与 android.support.v4.app.FragmentManager带来的若干Error

Fragment是activity的界面中的一部分或一种行为.你能够把多个Fragment们组合到一个activity中来创建一个多面界面而且你能够在多个activity中重用一个Fragment.你能够把Fragment觉得模块化的一段activity,它具有自己的生命周期,接收它自己的事件.并能够在activity执行时被加入或删除. 一个好的帖子:http://my.oschina.net/u/270164/blog/85347. 使用Fragment的包为android.app.Frag

Android Studio不识别support.v4.app.FragmentTabHost的问题。

用Android Studio实现底部标签页功能,同样的代码在Eclipse里面是没有问题的,现在在AS里面预览的时候总是报错:Exception raised during rendering: No tab known for tag null XML源码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andr