当我从片段中打开活动时发生此错误。新活动包含viewPager
,我认为错误是由新活动引起的,因为当我阻止一段代码(viewPager.setAdapter(adapter))
时,错误消失,我可以看到新活动。所以我认为意图没有问题。
这是我的片段代码
getActivity().startActivity(new Intent(getActivity(),five_oder.class));
新活动主要代码
viewPager= (ViewPager) findViewById(R.id.oder_viewPafer);
tb= (PagerTabStrip) findViewById(R.id.order_tab);
TitleList = new ArrayList<String>();
fragmentList = new ArrayList<Fragment>();
TitleList.add("已完成订单");
TitleList.add("未完成订单");
fragmentList.add(new fragment_oder1());
fragmentList.add(new fragment_oder2());
MyFragmentAdapter adapter=new MyFragmentAdapter(getSupportFragmentManager(),fragmentList,TitleList);
viewPager.setAdapter(adapter);
适配器代码
public class MyFragmentAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList= new ArrayList<Fragment>();
private List<String> stringList=new ArrayList<String>();
public MyFragmentAdapter(FragmentManager fm, List<Fragment> fragmentList, List<String> stringList) {
super(fm);
this.fragmentList=fragmentList;
this.stringList =stringList;
Log.i("CHONG","MyFragmentAdapter construct");
}
@Override
public Fragment getItem(int position) {
Log.i("CHONG"," getItem");
return fragmentList.get(position);
}
@Override
public int getCount() {
Log.i("CHONG"," getItem");
return fragmentList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return stringList.get(position);
}
}
错误日志:
04-29 09:17:33.651 11798-11798/com.example.administrator.buyer E/JavaBinder:
!!! FAILED BINDER TRANSACTION !!!
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime: Error reporting crash
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime: android.os.TransactionTooLargeException
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime: at android.os.BinderProxy.transactNative(Native Method)
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime: at android.os.BinderProxy.transact(Binder.java:496)
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime: at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:4124)
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime: at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:89)
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime: at com.loc.ai.uncaughtException(DynamicExceptionHandler.java:86)
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
提前致谢!!
答案 0 :(得分:1)
当您在扩充布局时未在Fragment类的onCreateView()方法中设置attachToRoot false时,可能会导致此异常。
如果它默认为true,则表示“将子视图添加到父级RIGHT”
如果设置为false,则表示“将子视图添加到父级NOT NOW”
立即将片段添加到父级会导致此异常。
答案 1 :(得分:0)
我认为主要问题是片段中的图像大小太大,因此查看片段的事务无法完成,但是可以通过单独加载图像来修复,可以使用名为Picasso的库来加载使用本地/远程资源将图像放入图像视图中 http://square.github.io/picasso/ 例如 Picasso.with(上下文).load(&#34;文件:///android_asset/DvpvklR.png").into(imageView2);
答案 2 :(得分:0)
尝试清除旧的已保存实例
webpack.config.js
或以其他方式为片段充气时,您可能会丢失最后一个项目。
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.clear();
}
->缺少最后一个元素?在其中添加false。