2012-10-02 18 views
1

我目前正在開發一個android項目,並且我有一個使用startActivityForResult()函數開始的活動。從OnActivityResult函數獲取ArrayList <Spanned>保存在目標中

在這個活動中,我有一個ArrayList,並創建一個Internet,然後將結果設置爲intent,如下面的代碼所示。

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中,這樣我可以處理數據。到目前爲止,我有以下代碼。

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    common.showToastMessage("Result received", Toast.LENGTH_LONG); 
    Bundle bundle = data.getExtras(); 

} 

我不知道該從哪裏去,任何幫助將不勝感激。

回答

2

我設法找到了一種方法,這是謝謝@Jan Gerlinger回答指出我在正確的方向,但我已經找到了如何做到這一點。

在活動中我在哪裏設置的結果,我有以下代碼

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函數中,我有以下

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"); 
} 
1
intent.putExtra("searchResults", passwords); 

這裏使用putExtra(String name, Serializable value)方法。所以,你可以使用getSerializableExtra(String name)把它找回來:

ArrayList<Spanned> passwords = (ArrayList<Spanned>) data.getSerializableExtra("searchResults"); 

根據您Spanned對象的類型,如果他們這樣做實現Serializable,然而,這可能引發異常的Spanned不直接實現Serializable

相關問題