Android:跨选项卡传递微调器选择

时间:2011-01-23 16:37:10

标签: android android-activity spinner

我正在制作一个包含多个标签的Android应用程序,我按照指示我进行多项活动的开发人员教程。我在第一个标签上有微调器。

如何将微调器选择的值传递给其他选项卡?

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

您可以使用SharedPreferences来完成此操作。每当应用程序中的任何位置更改Activities时,您也可以利用OnSharedPreferenceChangeListener在其他SharedPreference内进行回调。

使用SharedPreferences保证一致的数据持久性。来自API docs

  

首选项的修改必须   浏览SharedPreferences.Editor   对象以确保首选项值   保持一致的状态   控制他们何时致力于   存储

答案 1 :(得分:0)

另一个快速而肮脏的解决方案是使用静态类,例如:

public class OptionHelper
{
    private static String option;

    public static void setSelectedOption(String option)
    {
       //...
    }
    public static String getSelectedOption(){
       //...
    }
}

也许不推荐。 :)

答案 2 :(得分:0)

另一种解决方案是使用Application类。

答案 3 :(得分:0)

在我的应用程序中,我有一个需要传递的Account对象 - 我做了Parcelable

https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/account/Account.java#L11

然后将其添加到Intents

https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/TabWidget.java#L83

并在接收器中读回来:

https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/OneTweetActivity.java#L76

也许不是最好的选择。但我真的不认为静态单例是最好的(可能来自我的Appserver背景)并且应用程序在Android文档中被标记为“不使用”,因此我没有看到明显更好的解决方案。 根据您的操作,首选项的使用可能也不会“很好地扩展”。