4

我正在尝试从类“Play”中传递一个字符串,该类通过以下方式扩展 Activity:

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

或者您可以使用提到的 pK 静态字段,但这并不总是一个好的模式。

于 2013-02-18T13:34:03.233 回答
2

您应该使用 apublic 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 回答