从所有片段标签获取值的Android方法

3

我已经像下面这样声明了FragmentActivity:

    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);

现在,在所有片段中,我已经声明了两个或三个EditText。现在在这个活动中,我想从不同的碎片标签中获取所有EditText的数据。

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");

现在,您可以在主活动中获取那些片段中更改的所有值。
 GlobalApp.getInstance().details.getSomeData();

我已经在另一个与此相关的问题中给出了相同的答案。

在Android上片段之间的通信


抱歉,我无法理解关于这个GlobalApp类的内容。 - CoronaPintu
@PintuCorna:这是一个单例模式,http://en.wikipedia.org/wiki/Singleton_pattern - Thalaivar
好的,但在我的活动中,我该如何获取所有EditText的值?我有一个带有两个EditText的基本片段选项卡和三个EditText的税收片段选项卡。现在,在我的这个活动中,我想将所有EditText的值存储在数据库中,所以在我的活动中,我该如何使用这个globalApp类来获取它们? - CoronaPintu
你应该使用GlobalApp.getInstance().Object来存储/获取值,你应该将GlobalApp.getInstance().Object发送到你的数据库。你可以在任何地方使用GlobalApp.getInstance().Object。 - Thalaivar
但是在我的片段中没有任何按钮,所以在editext上如何将值设置为此gloabalapp。 - CoronaPintu
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接