4

次を使用してActivityを拡張するクラス「Play」から文字列を渡そうとしています:

Bundle data = new Bundle();
Intent i = new Intent(Play.this, Receive.class);
String category;

data.putString("key", category);
i.putExtras(data);

すると、Activity を継承しない非 Activity クラスの「Receive」クラスが、「Play」から文字列を受け取ります。

しかし、このコードを使用してデータを受信しようとすると:

Bundle receive = new Bundle();
String passed;

receive = getIntent().getExtras();
passed = receive.getString("key");

「getIntent()」という単語でエラーが発生し、メソッド getIntent() を作成するよう提案されました。

この問題の可能な解決策は何ですか? ありがとう!

4

3 に答える 3

6

ここでは意図は必要ありません。次のようなことができます:

Play.class :

public String getCategory() {
    return category;
}

および Receiver.class で:

Play playObject = new Play();
passed = playObject.getCategory();

または、前述の pKs のように静的フィールドを使用できますが、常に適切なパターンとは限りません。

于 2013-02-18T13:34:03.233 に答える
2

を使用し、public static variableそれを使用してデータを保存し、他のクラスからデータを取得する必要があります。

Android では Activity クラスを拡張しないとインテントが機能しないためです。

あなたの場合、それは次のようになります。

public static category="some category";

別のクラスでアクセスするには、

String dataFromActivity=NameOFClassWhereCategoryIsDefined.category;

于 2013-02-18T13:32:34.193 に答える
0

getIntent(); はできません。Activity を拡張しないクラス内から。Sprigg が述べたように、クラス間の通信には他の手段を使用する必要があります。

于 2013-02-18T13:31:37.043 に答える