【发布时间】:2015-11-16 22:37:30
【问题描述】:
所以基本上我在两个不同的活动中使用相同类型的片段,我只想在片段中创建和初始化一些变量,前提是它是从特定活动添加的。我的问题是如何以编程方式找出片段是在哪个活动中添加的。
【问题讨论】:
标签: android android-fragments android-activity android-fragmentactivity
所以基本上我在两个不同的活动中使用相同类型的片段,我只想在片段中创建和初始化一些变量,前提是它是从特定活动添加的。我的问题是如何以编程方式找出片段是在哪个活动中添加的。
【问题讨论】:
标签: android android-fragments android-activity android-fragmentactivity
有两种主要的实现方式:
模块化程度较低的方法,您只需使用 instanceof 进行检查
if(getActivity() instanceof MyActivity)
以及更模块化的方法,您在将片段添加到事务的那一刻将一些参数传递给片段:
// this during the transaction to pass extra parameters to the fragment
Fragment f = new MyFragment();
Bundle b = new Bundle();
b.putBoolean("doExtraCode", true);
f.setArguments(b);
然后在片段内部:
// check if should execute extras
Bundle b = getArguments();
boolean doExtraCode = b == null? false: b.getBoolean("doExtraCode", false);
【讨论】: