我有一个使用选项卡的项目活动(MainActivity),每个选项卡都会启动一个片段(MyFragment)。片段没有在项目中实现,而是在引用的库项目中实现。
所以我想将一个简单的对象从 Activity 传递给 Fragment:
private MySimpleClass myObject = new MySimpleClass();
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
static final String KEY = "simpleObject";
final ActionBar actionBar = getActionBar();
Bundle args = new Bundle();
switch( tab.getPosition() ) {
case 0:
fragment = new MyFragment();
args.put??????(KEY, myObject);
fragment.setArguments(args);
fragmentTransaction.add(R.id.fragmentContent, fragment, "tab0_tag");
break;
. . .
}
}
如果Fragment
不在库中,我将绕过该Bundle
机制并仅使用本地方法:
m = ((MainActivity)getActivity()).getMyObject();
但这不适用于库片段代码,因为它无法识别MainActivity
,因此无法转换为它。