我正在尝试从“Play”类中传递一个String,它通过使用:
来扩展ActivityBundle 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()。
这个问题的可能解决方案是什么? 谢谢!
答案 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的类。正如斯普里格提到的那样,你必须在班级之间使用其他的沟通方式。