相关疑难解决方法(0)

Java是"通过引用传递"还是"传递价值"?

我一直认为Java是传递引用的.

但是,我看过一些博客文章(例如,这个博客)声称它不是.

我不认为我理解他们所做的区别.

解释是什么?

java methods parameter-passing pass-by-reference pass-by-value

6270
推荐指数
80
解决办法
189万
查看次数

FragmentStatePagerAdapter IllegalStateException:<MyFragment>当前不在FragmentManager中

我在一些使用FragmentStatePagerAdapter的活动的onResume()中获得了这个.使用设备的后退按钮时.不总是.不可重复.

我正在使用支持包v4,最新修订版(8).

已经用谷歌搜索过,没有成功找到有用的答案.

在源代码中,它被抛出:FragmentManager.java

@Override
public void putFragment(Bundle bundle, String key, Fragment fragment) {
    if (fragment.mIndex < 0) {
        throw new IllegalStateException("Fragment " + fragment
                + " is not currently in the FragmentManager");
    }
    bundle.putInt(key, fragment.mIndex);
}
Run Code Online (Sandbox Code Playgroud)

但是为什么片段的索引<0呢?

实例化片段的代码:

@Override
public Fragment getItem(int position) {
    Fragment fragment = null;

    switch(position) {
        case 0:
            fragment = MyFragment.newInstance(param1);
            break;
        case 1:
            fragment = MyFragment2.newInstance(param2, param3);
            break;
    }
    return fragment;
}

@Override
public int getCount() {
    return 2;
}
Run Code Online (Sandbox Code Playgroud)

我也无法通过源调试,因为支持包不允许我附加源,出于某种原因......但这是一个不同的问题......

android fragment

28
推荐指数
4
解决办法
2万
查看次数