Java 将int值从活动片段传递到另一个片段

Java 将int值从活动片段传递到另一个片段,java,android,android-fragments,Java,Android,Android Fragments,我需要将一个int值从一个活动片段传递到另一个片段。然后,这些数据将被设置为一个switch case,它将决定哪个android布局文件将附加到片段 Fragment exampleFragment = ExampleFragment.newInstance(exampleInt); 这是来自基本活动和设置要传递的值的片段的代码: Fragment fragment = new otherFragment(); Bundle bundle = new Bundle(); bundle.put

我需要将一个int值从一个活动片段传递到另一个片段。然后,这些数据将被设置为一个switch case,它将决定哪个android布局文件将附加到片段

Fragment exampleFragment = ExampleFragment.newInstance(exampleInt);
这是来自基本活动和设置要传递的值的片段的代码:

Fragment fragment = new otherFragment();
Bundle bundle = new Bundle();
bundle.putInt(key, value);
fragment.setArguments(bundle);
顺便说一句,我还尝试将上述代码放在片段的onCreate和onCreateView方法上,但仍然是相同的输出。然后在设置片段和捆绑包之后,我切换到另一个活动,下面是获取并使用int值的代码:

Bundle bundle = this.getArguments();
int myInt = bundle.getInt(key, defaultValue);
也试过

savedInstanceState = this.getArguments();
int type = savedInstanceState.getInt(key, defaultValue);
当来自基本活动时,错误为空指针异常,当来自第一个片段时,错误为未找到资源

05-12 14:50:47.732: E/ERRORSKI(814): java.lang.NullPointerException
05-12 14:41:38.542: E/ERRORSKI(798): android.content.res.Resources$NotFoundException: String resource ID #0x1

谢谢。

使用默认构造函数创建片段通常不是一个好办法。 下面是一个例子,说明您可以更好地创建片段的新实例并传递一个整数

将此代码放在将要创建的片段中

public class ExampleFragment {
    public static ExampleFragment newInstance(int exampleInt) {
        ExampleFragment fragment = new ExampleFragment();

        Bundle args = new Bundle();
        args.putInt("exampleInt", exampleInt);
        fragment.setArguments(args);

        return fragment;
    }
}
在活动中使用此选项创建新片段

Fragment exampleFragment = ExampleFragment.newInstance(exampleInt);
稍后在片段中,使用类似这样的方法来获取整数

getArguments().getInt("exampleInt", -1);

使用默认构造函数创建片段通常不是一个好办法。 下面是一个例子,说明您可以更好地创建片段的新实例并传递一个整数

将此代码放在将要创建的片段中

public class ExampleFragment {
    public static ExampleFragment newInstance(int exampleInt) {
        ExampleFragment fragment = new ExampleFragment();

        Bundle args = new Bundle();
        args.putInt("exampleInt", exampleInt);
        fragment.setArguments(args);

        return fragment;
    }
}
在活动中使用此选项创建新片段

Fragment exampleFragment = ExampleFragment.newInstance(exampleInt);
稍后在片段中,使用类似这样的方法来获取整数

getArguments().getInt("exampleInt", -1);

使用默认构造函数创建片段通常不是一个好办法。 下面是一个例子,说明您可以更好地创建片段的新实例并传递一个整数

将此代码放在将要创建的片段中

public class ExampleFragment {
    public static ExampleFragment newInstance(int exampleInt) {
        ExampleFragment fragment = new ExampleFragment();

        Bundle args = new Bundle();
        args.putInt("exampleInt", exampleInt);
        fragment.setArguments(args);

        return fragment;
    }
}
在活动中使用此选项创建新片段

Fragment exampleFragment = ExampleFragment.newInstance(exampleInt);
稍后在片段中,使用类似这样的方法来获取整数

getArguments().getInt("exampleInt", -1);

使用默认构造函数创建片段通常不是一个好办法。 下面是一个例子,说明您可以更好地创建片段的新实例并传递一个整数

将此代码放在将要创建的片段中

public class ExampleFragment {
    public static ExampleFragment newInstance(int exampleInt) {
        ExampleFragment fragment = new ExampleFragment();

        Bundle args = new Bundle();
        args.putInt("exampleInt", exampleInt);
        fragment.setArguments(args);

        return fragment;
    }
}
在活动中使用此选项创建新片段

Fragment exampleFragment = ExampleFragment.newInstance(exampleInt);
稍后在片段中,使用类似这样的方法来获取整数

getArguments().getInt("exampleInt", -1);

更好地利用sharedpreference@BirajZalavadia谢谢,但我不会那样使用数据。更好地使用sharedpreference@BirajZalavadia谢谢,但我不会那样使用数据。更好地使用sharedpreference@BirajZalavadia谢谢,但我不会那样使用数据。更好地使用sharedpreference@BirajZalavadia谢谢你,但我不会用这个使用newInstance方法,您的代码中有一个位置告诉您应该如何实例化某个片段,而不是每次都编写捆绑代码。它也是与应用程序其余部分的某种契约,确保您拥有片段正常工作所需的一切。因此,使用newInstance通常是一种很好的做法。@Leiba使用newInstance方法,您的代码中有一个位置告诉您应该如何实例化某个片段,而不是每次都编写捆绑代码。它也是与应用程序其余部分的某种契约,确保您拥有片段正常工作所需的一切。因此,使用newInstance通常是一种很好的做法。@Leiba使用newInstance方法,您的代码中有一个位置告诉您应该如何实例化某个片段,而不是每次都编写捆绑代码。它也是与应用程序其余部分的某种契约,确保您拥有片段正常工作所需的一切。因此,使用newInstance通常是一种很好的做法。@Leiba使用newInstance方法,您的代码中有一个位置告诉您应该如何实例化某个片段,而不是每次都编写捆绑代码。它也是与应用程序其余部分的某种契约,确保您拥有片段正常工作所需的一切。因此,使用newInstance通常是一种很好的做法。