私は親FragmentActivityに3つの子タブフラグメントを持っています。 FragmentActivityで "Submit"ボタンを押すと、別のTab FragmentのすべてのEditTextフィールドの値を合計します。 getSupportFragmentManager()。findFragmentByTag()を使用して正しいアイデアがあると思いますが、現在のアクティブなフラグメントの値を返すだけです。上記のシナリオ、SUM1、SUM2、SUM3でAndroid FragmentsとfindFragmentByTag()
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;
}
に
、およびsum4はすべて同じになります。私は、タブ断片のは、同様に、私は(目に見えるかどうか)、非アクティブにアクセスできるという仮定の下にありました。アクティブなタブフラグメントの合計になります。誰にもアイデアはありますか?
ありがとうございます!
こんにちはtamsler、アドバイスをいただきありがとうございます。私は、キャッシュに含まれているビューを追跡し、それが機能しました。 – littleK