有人可以解释如何将TypedArray
传递到Android的Bundle中吗?
我正在使用TypedArray
将@Drawable
中的某些图像存储在资源文件中,我想将该数组传递给带有setArguments
的片段,该片段接受一个包。
代码段:
{
fragmentTransaction = getSupportFragmentManager().fragmentManager.beginTransaction();
Fragment f = new fFragment();
fImages = (Parcelable)getResources().obtainTypedArray(R.array.fImages);
fNames = getResources().getStringArray(R.array.fNames);
Bundle b = new Bundle();
b.putStringArray("name", fNames);
b.putParcelable("image", fImages);
sub.setArguments(b);
fragmentTransaction.replace(R.id.mainFrameLayout, f).commit();
}
答案 0 :(得分:0)
使用toString()
方法传递Typedarray,看看
TypedArray typedArray = null;
Bundle bundle = new Bundle();
bundle.putString("myArray",typedArray.toString());
答案 1 :(得分:0)
您不需要传递TypeArray。只需将资源ID传递给下一个Fragment。然后,下一个Fragment将不得不从资源中获取TypeArray。
在片段1中
Bundle bundle = new Bundle();
bundle.putInt("TYPE_ARRAY_RES_ID", R.array.fNames);
final Fragment f = new Fragment2();
f.setArguments(b);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.mainFrameLayout, f)
.commit();
在片段2中
@ArrayRes int typeArrayRes = getArguments().getInt("TYPE_ARRAY_RES_ID");
String[] stringArray = getResources().getStringArray(typeArrayRes);
// TODO