1

私は現在Androidプロジェクトに取り組んでおり、startActivityForResult()関数を使用して開始されるアクティビティがあります。

このアクティビティ内にArrayListがあり、インターネットを作成してから、次のコードのように結果をインテントとして設定します。

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

}

ここからどこへ行けばいいのかわからない。

4

2 に答える 2

4

私はなんとか方法を見つけることができました、それは@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");
}
于 2012-10-03T19:37:33.310 に答える
1
intent.putExtra("searchResults", passwords);

ここではputExtra(String name, Serializable value)メソッドを使用します。したがってgetSerializableExtra(String name)、それを取り戻すために使用できます:

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

ただし、 Spannedオブジェクトのタイプによっては、それらが を実装している場合、直接実装されていないためSerializable、例外がスローされる場合があります。SpannedSerializable

于 2012-10-03T09:05:38.860 に答える