首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从保存在Intent内部的OnActivityResult函数中获取ArrayList<Spanned>

从保存在Intent内部的OnActivityResult函数中获取ArrayList<Spanned>
EN

Stack Overflow用户
提问于 2012-10-03 05:24:18
回答 2查看 2.8K关注 0票数 1

我目前正在做一个android项目,我有一个使用startActivityForResult()函数启动的活动。

在此活动中,我有一个ArrayList,我创建了一个互联网,然后将结果设置为意图,如以下代码所示。

代码语言:javascript
复制
private void getSearchData()
    {
        ArrayList<Spanned> passwords = null;
        String searchTerm = txtSearch.getText().toString();
        GetSearchResults search = new GetSearchResults(this, searchTerm);
        if (rdoApp.isChecked())
        {
            passwords = search.getData(SearchType.App);
        }
        else if (rdoName.isChecked())
        {
            passwords = search.getData(SearchType.Name);
        }
        else if (rdoUsername.isChecked())
        {
            passwords = search.getData(SearchType.Username);
        }

        Intent intent = new Intent();
        intent.putExtra("searchResults", passwords);
        setResult(1, intent);
        finish();
    }

在函数OnActivityResult的第一个活动中,我想要获取ArrayList,以便处理数据。到目前为止,我有以下代码。

代码语言:javascript
复制
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    common.showToastMessage("Result received", Toast.LENGTH_LONG);
    Bundle bundle = data.getExtras();

}

我不知道下一步该怎么走。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-04 03:37:33

我设法找到了一种方法,这要归功于@Jan Gerlinger,答案为我指明了正确的方向,但我已经找到了方法。

在我设置结果的活动中,我有以下代码

代码语言:javascript
复制
ArrayList<Spanned> passwords = search.getResult();
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putSerializable("passwords", passwords);
intent.putExtras(bundle);
setResult(1, intent);
finish();

在OnActivityResult函数内部的活动中,我有以下内容

代码语言:javascript
复制
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
common.showToastMessage("Result received", Toast.LENGTH_LONG);
Bundle bundle = data.getExtras();
ArrayList<Spanned> passwords = (ArrayList<Spanned>) bundle.getSerializable("passwords");
}
票数 4
EN

Stack Overflow用户

发布于 2012-10-03 17:05:39

代码语言:javascript
复制
intent.putExtra("searchResults", passwords);

这里使用putExtra(String name, Serializable value)方法。所以你可以使用getSerializableExtra(String name)来找回它:

代码语言:javascript
复制
ArrayList<Spanned> passwords = (ArrayList<Spanned>) data.getSerializableExtra("searchResults");

根据您的Spanned对象的类型,如果它们实现了Serializable,则可能会抛出异常,因为Spanned不直接实现Serializable

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

https://stackoverflow.com/questions/12698555

复制
相关文章

相似问题

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