如何在不扩展Activity的类中使用getIntent()?

时间:2013-02-18 13:25:34

标签: java android android-intent

我正在尝试从“Play”类中传递一个String,它通过使用:

来扩展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()。

这个问题的可能解决方案是什么? 谢谢!

3 个答案:

答案 0 :(得分:5)

这里的意图不是必须的。你可以这样做:

Play.class:

public String getCategory() {
    return category;
}

并在Receiver.class中:

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

或者你可以使用静态字段作为pKs,但它并不总是一个好的模式。

答案 1 :(得分:2)

您应该使用public static variable并使用它来存储数据并从其他类中获取数据。

  

如果没有在Android中扩展Activity类,意图就无法工作。

在你的情况下,就像是。

public static category="some category";

要在另一个班级中访问,

String dataFromActivity=NameOFClassWhereCategoryIsDefined.category;

答案 2 :(得分:0)

你不能getIntent();来自不扩展Activity的类。正如斯普里格提到的那样,你必须在班级之间使用其他的沟通方式。