0

私のプロジェクトには 2 つのアクティビティ クラスがあり、3 つ目のクラスは のサブクラスですThread

ThreadクラスはBluetooth Socketwhich is not を実装しParcelableます。

First ActivitySecond Activity使用を開始しますstartActivityforResult()

Second Activityクラスのオブジェクトを作成しThread、スレッドを開始します。

最初のアクティビティから Thread オブジェクトにアクセスできるように、Thread オブジェクトのオブジェクト参照を から に渡す必要がありますSecond ActivityFirst Activity's onActivityResult()

どうすればこれを達成できますか?

4

2 に答える 2

2

いくつかのオプションがあります。

オブジェクトを単純なデータ型に分解し、それらの値を で返すインテントにエクストラとして配置することができsetResult()ます。intent.putExtra(key, value)

または、データ オブジェクトにParcelableインターフェイスを実装させて、データ オブジェクトを直接インテントに追加できるようにすることもできます。

後者を行うコードは次のようになります

Intent resultIntent = new Intent();
resultIntent.putExtra("resultObject", mObj);
setResult(ACTION_OK, resultIntent);

次に、 onActivityResult 内で次のように引き出すことができます。

data.getParcelableExtra("resultObject");

後者の方法を機能させるには、データ オブジェクトで parcelable を正しく実装する必要があります。ただし、前者の方法では単純な値のみを返すため、これは必要ありません。次に、それらの単純な値を取得し、反対側のデータ オブジェクトを「再膨張」させる必要があります。

于 2013-02-14T16:08:12.003 に答える
0

これを実現する最善の方法は、シングルトンを使用することだと思います。プリミティブは、共有設定とバンドルにのみ保存できます。ここでは、シングルトンを作成するための優れたリファレンスを示します。

http://www.javaworld.com/javaworld/jw-04-2003/jw-0425-designpatterns.html

于 2013-02-14T16:07:46.713 に答える