Java Android片段和findFragmentByTag()
我有一个父FragmentActivity,它有三个子选项卡片段。当FragmentActivity上按下“提交”按钮时,我想对不同选项卡片段中所有EditText字段的值求和。我想我的想法是正确的,使用getSupportFragmentManager().findFragmentByTag(),但是我发现它只返回当前活动片段的值。我假设我也可以访问非活动(或不可见)选项卡片段:Java Android片段和findFragmentByTag(),java,android,fragment,Java,Android,Fragment,我有一个父FragmentActivity,它有三个子选项卡片段。当FragmentActivity上按下“提交”按钮时,我想对不同选项卡片段中所有EditText字段的值求和。我想我的想法是正确的,使用getSupportFragmentManager().findFragmentByTag(),但是我发现它只返回当前活动片段的值。我假设我也可以访问非活动(或不可见)选项卡片段: int sum1 = getSupplyQuantities(Constants.TAB_TAG1); int s
int sum1 = getSupplyQuantities(Constants.TAB_TAG1);
int sum2 = getSupplyQuantities(Constants.TAB_TAG2);
int sum3 = getSupplyQuantities(Constants.TAB_TAG3);
int sum4 = getSupplyQuantities(Constants.TAB_TAG4);
private int getSupplyQuantities(String string) {
Activity tab = getSupportFragmentManager().findFragmentByTag(string)
.getActivity();
LinearLayout linearLayout = (LinearLayout) tab
.findViewById(R.id.get_supplies_layout);
int sum = 0;
for (int i = 0; i < linearLayout.getChildCount(); i++) {
View view = linearLayout.getChildAt(i);
QuantityTextView quantity = (QuantityTextView) view
.findViewById(R.id.get_supplies_list_quantity);
sum += Integer.parseInt(quantity.getText().toString());
}
return sum;
}
int-sum1=getSupplyQuantilities(Constants.TAB_TAG1);
int sum2=获取供应数量(常数表2);
int sum3=获取供应数量(常数表3);
int sum4=获取供应数量(常数表4);
私有整型GetSupplyQuantilities(字符串){
活动选项卡=getSupportFragmentManager().findFragmentByTag(字符串)
.getActivity();
线性布局线性布局=(线性布局)选项卡
.findviewbyd(R.id.get\u supplies\u布局);
整数和=0;
对于(int i=0;i
在上述场景中,sum1、sum2、sum3和sum4都是相同的。它们将是活动选项卡片段的总和
有人有什么想法吗
谢谢 我认为您需要获取片段的视图,而不是活动的视图
通过获取您请求的活动片段。正如Barak前面提到的,您需要获取包含视图的片段。请记住,如果您使用某种类型的视图寻呼机(取决于它的配置),则仅实例化当前可见的页面/片段 解决方案:
在android示例中,有一个关于如何使用带有片段的选项卡的示例。 只要看看“…\android sdk\samples\android-15\”就可以找到“ApiDemos”示例项目(您需要“FragmentTabs.java”文件)
关于EditText:您可以将getTextFromEdittext()方法添加到片段类中,然后在需要时从FragmentActivity调用它 您好,Barak,我尝试使用View tab=getSupportFragmentManager().findFragmentByTag(string.getView();获取片段视图,但我遇到了同样的问题。除活动片段外,每个片段的视图都将为空。我的观点错了吗?对不起,我的知识有限。。。我从来没有用片段做过标签,也没有用片段标签。我认为整个片段视图必须仍然存在(为什么每次在它们之间切换时都要重新创建它们?),但我不知道如何访问它们。嗨,塔姆斯勒,谢谢你的建议。我跟踪了缓存中包含的视图,这很有效。