首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么方法可以将List<Spanned>放在SaveInstanceState包中吗?

有什么方法可以将List<Spanned>放在SaveInstanceState包中吗?
EN

Stack Overflow用户
提问于 2013-12-31 14:56:56
回答 1查看 248关注 0票数 0

我试图在我的安卓应用程序中将2字符串ArrayLists和1跨ArrayList存储在SaveInstanceState中。这个是可能的吗?如果是的话,你能提供一个例子吗?

代码语言:javascript
复制
ArrayListList<String> businessNames = new ArrayList<String>();
List<Spanned> businessInfo = new ArrayList<Spanned>();
ArrayList<String> businessCategories = new ArrayList<String>();


protected void onSaveInstanceState(Bundle bundle) {
    super.onSaveInstanceState(bundle);
    bundle.putStringArrayList("businessNames", businessNames);
    bundle.putStringArrayList("businessCategories", businessCategories);
    // ??????
    bundle.putParcelableArrayList("businessInfo", businessInfo); 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-31 15:27:57

我自己解决了这个问题。下面是代码..。

代码语言:javascript
复制
ArrayList<String> businessNames = new ArrayList<String>();
List<Spanned> businessInfo = new ArrayList<Spanned>();
ArrayList<String> businessCategories = new ArrayList<String>();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    expListView = (ExpandableListView) findViewById(R.id.lvExp);
    String userChoice = (String) getIntent().getExtras().get("userChoice");

        if (savedInstanceState != null){
            businessInfo = (List<Spanned>) savedInstanceState.getSerializable("businessInfo");
            businessNames = savedInstanceState.getStringArrayList("businessNames");
            businessCategories = savedInstanceState.getStringArrayList("businessCategories");

            new DisplaySavedResults().execute();

        } else {
            new RetreiveSearchResults().execute(userChoice);
        }
}


protected void onSaveInstanceState(Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);
    savedInstanceState.putStringArrayList("businessNames", businessNames);
    savedInstanceState.putStringArrayList("businessCategories", businessCategories);
    savedInstanceState.putSerializable("businessInfo", (Serializable) businessInfo);
}

新的异步任务DisplaySavedResults只是简单地在onPostExecute中进行UI更改。doInBackground是空的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20859079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档