3

以下のようにframgmentActivityを宣言しました:

    mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
    mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
    mTabHost.addTab(mTabHost.newTabSpec("basic").setIndicator("Basic",getResources().getDrawable(R.drawable.ic_launcher)),BasicProductFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("taxes").setIndicator("Taxes",getResources().getDrawable(R.drawable.ic_launcher)),TaxesProductFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("price").setIndicator("Price",getResources().getDrawable(R.drawable.ic_launcher)),PriceProductFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("stock").setIndicator("Stock",getResources().getDrawable(R.drawable.ic_launcher)),StockProductFragment.class, null);

現在、すべてのフレームで、このアクティビティで 2 つまたは 3 つの edittext を宣言していました。別のフラグメント タブからすべての edittext からデータを取得したいと考えています。

4

1 に答える 1

3

シングルトン クラスは、問題の解決に役立つ可能性があります。

public class GlobalApp {
    private static GlobalApp instance = new GlobalApp();

    private GlobalApp() {}

    public static GlobalApp getInstance() {
        return instance;
    }

    public Details details = new Details ();

}

次に、 Fragment クラスで次のように使用します。

GlobalApp.getInstance().details.setSomeData("something");

これで、mainActivity のフラグメントで変更されたすべての値を取得できます

 GlobalApp.getInstance().details.getSomeData();

これに関連する別の質問に対して同じ答えを出しました。

Android でのフラグメント間の通信

于 2013-06-19T13:13:37.443 に答える