Java 将int值从活动片段传递到另一个片段
我需要将一个int值从一个活动片段传递到另一个片段。然后,这些数据将被设置为一个switch case,它将决定哪个android布局文件将附加到片段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
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通常是一种很好的做法。