在viewpager中打开新片段时,应用程序崩溃

萨米

我试图打开一个新fragmentviewpager's fragment使用这个作为例子。但我发现了这个错误IndexOutOfBoundsException在该行tabLayout.getTabAt(0).setIcon(tabIcons[0]);我将logcate粘贴在这里有人可以告诉我该示例没有示例时如何解决tablayoutviewpager的问题吗?

public class FirstFragment extends Fragment {

	private static final String TAG = "FirstFragment";

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// Inflate the layout for this fragment
		View view = inflater.inflate(R.layout.first_fragment, container, false);

		Button btn = (Button) view.findViewById(R.id.btn);

		btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				FragmentTransaction trans = getFragmentManager()
						.beginTransaction();
				/*
				 * IMPORTANT: We use the "root frame" defined in
				 * "root_fragment.xml" as the reference to replace fragment
				 */
				trans.replace(R.id.root_frame, new SecondFragment());

				/*
				 * IMPORTANT: The following lines allow us to add the fragment
				 * to the stack and return to it later, by pressing back
				 */
				trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
				trans.addToBackStack(null);

				trans.commit();
			}
		});

		return view;
	}

}
First tab:

public class RootFragment extends Fragment {

	private static final String TAG = "RootFragment";

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		/* Inflate the layout for this fragment */
		View view = inflater.inflate(R.layout.root_fragment, container, false);

		FragmentTransaction transaction = getFragmentManager()
				.beginTransaction();
		/*
		 * When this container fragment is created, we fill it with our first
		 * "real" fragment
		 */
		transaction.replace(R.id.root_frame, new FirstFragment());

		transaction.commit();

		return view;
	}

}
Main Activity:

public class MainActivity extends AppCompatActivity {

	// For this example, only two pages
	static final int NUM_ITEMS = 2;
	private TabLayout tabLayout;
	private ViewPager mPager;
	private int[] tabIcons = {
			R.drawable.facebook,
			R.drawable.twitter
	};

	SlidePagerAdapter mPagerAdapter;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		/* Instantiate a ViewPager and a PagerAdapter. */
		tabLayout=(TabLayout)findViewById(R.id.tabs);
		mPager = (ViewPager) findViewById(R.id.viewpager);
		mPagerAdapter = new SlidePagerAdapter(getSupportFragmentManager());
		mPager.setAdapter(mPagerAdapter);
		setupTabIcons();

	}

	private void setupTabIcons() {
		tabLayout.getTabAt(0).setIcon(tabIcons[0]);
		tabLayout.getTabAt(1).setIcon(tabIcons[1]);
	}

	/* PagerAdapter class */
	public class SlidePagerAdapter extends FragmentPagerAdapter {
		public SlidePagerAdapter(FragmentManager fm) {
			super(fm);
		}

		@Override
		public Fragment getItem(int position) {
			/*
			 * IMPORTANT: This is the point. We create a RootFragment acting as
			 * a container for other fragments
			 */
			if (position == 0)
				return new RootFragment();
			else
				return new StaticFragment();
		}

		@Override
		public int getCount() {
			return NUM_ITEMS;
		}
	}

}

用户名

使用以下功能

  private void setupTabIcons() {
    tabLayout.addTab(tabLayout.newTab().setIcon(tabIcons[0]));
    tabLayout.addTab(tabLayout.newTab().setIcon(tabIcons[1]));
  }

您尚未在中添加任何标签tabLayout,因此您得到了IndexOutOfBoundsException

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重新打开和替换片段时,Android应用程序崩溃

来自分类Dev

打开语音时应用程序崩溃(分段错误:11)

来自分类Dev

在向Android应用中的活动添加新片段时出错

来自分类Dev

尝试在AlertDialog按钮上显示Toast时,应用程序崩溃(在片段中)

来自分类Dev

应用viewpager和片段时应用崩溃

来自分类Dev

在android中在片段内使用地图时,应用程序后退时崩溃了?

来自分类Dev

NSInvalidArgumentException:应用程序在打开时崩溃

来自分类Dev

在iPhone 6中从后台重新打开时,应用程序崩溃

来自分类Dev

片段内的EditText使应用程序崩溃

来自分类Dev

在导航抽屉中打开另一个活动时,应用程序崩溃

来自分类Dev

ViewPager片段中的TextView随机使应用程序崩溃NullPointerException:尝试调用虚拟方法void View.sendAccessibilityEventUnchec

来自分类Dev

打开tablayout活动时我的应用程序崩溃

来自分类Dev

Android应用程序从XML中打开InputStream时崩溃

来自分类Dev

单击放在片段中的按钮时,Android应用程序崩溃

来自分类Dev

在片段中创建Listview时,Android应用程序崩溃

来自分类Dev

NSInvalidArgumentException:应用程序在打开时崩溃

来自分类Dev

返回主显示片段时,GoogleMap片段使应用程序崩溃

来自分类Dev

打开共享表时,iPad应用程序崩溃

来自分类Dev

片段内的EditText使应用程序崩溃

来自分类Dev

当我移到某个片段时,应用程序崩溃

来自分类Dev

当容器中没有片段时应用程序崩溃。如何避免这种情况?

来自分类Dev

当我的 Android 应用程序的启动画面打开时,应用程序崩溃

来自分类Dev

从片段中请求权限后应用程序崩溃

来自分类Dev

片段中的 TextView.setText() 使应用程序崩溃

来自分类Dev

在 swift 4 中从 Today 扩展打开时包含应用程序崩溃

来自分类Dev

应用程序在 Android 中打开后立即崩溃

来自分类Dev

当您在片段中打开新活动时,应用程序停止

来自分类Dev

在 tabLayout 中滑动到新片段并滑动回上一个片段时,应用程序崩溃

来自分类Dev

当我尝试打开 Fragment 时应用程序崩溃

Related 相关文章

  1. 1

    重新打开和替换片段时,Android应用程序崩溃

  2. 2

    打开语音时应用程序崩溃(分段错误:11)

  3. 3

    在向Android应用中的活动添加新片段时出错

  4. 4

    尝试在AlertDialog按钮上显示Toast时,应用程序崩溃(在片段中)

  5. 5

    应用viewpager和片段时应用崩溃

  6. 6

    在android中在片段内使用地图时,应用程序后退时崩溃了?

  7. 7

    NSInvalidArgumentException:应用程序在打开时崩溃

  8. 8

    在iPhone 6中从后台重新打开时,应用程序崩溃

  9. 9

    片段内的EditText使应用程序崩溃

  10. 10

    在导航抽屉中打开另一个活动时,应用程序崩溃

  11. 11

    ViewPager片段中的TextView随机使应用程序崩溃NullPointerException:尝试调用虚拟方法void View.sendAccessibilityEventUnchec

  12. 12

    打开tablayout活动时我的应用程序崩溃

  13. 13

    Android应用程序从XML中打开InputStream时崩溃

  14. 14

    单击放在片段中的按钮时,Android应用程序崩溃

  15. 15

    在片段中创建Listview时,Android应用程序崩溃

  16. 16

    NSInvalidArgumentException:应用程序在打开时崩溃

  17. 17

    返回主显示片段时,GoogleMap片段使应用程序崩溃

  18. 18

    打开共享表时,iPad应用程序崩溃

  19. 19

    片段内的EditText使应用程序崩溃

  20. 20

    当我移到某个片段时,应用程序崩溃

  21. 21

    当容器中没有片段时应用程序崩溃。如何避免这种情况?

  22. 22

    当我的 Android 应用程序的启动画面打开时,应用程序崩溃

  23. 23

    从片段中请求权限后应用程序崩溃

  24. 24

    片段中的 TextView.setText() 使应用程序崩溃

  25. 25

    在 swift 4 中从 Today 扩展打开时包含应用程序崩溃

  26. 26

    应用程序在 Android 中打开后立即崩溃

  27. 27

    当您在片段中打开新活动时,应用程序停止

  28. 28

    在 tabLayout 中滑动到新片段并滑动回上一个片段时,应用程序崩溃

  29. 29

    当我尝试打开 Fragment 时应用程序崩溃

热门标签

归档