未知方法getIntent

时间:2014-01-04 00:57:58

标签: android

我在AIDE上为android做了一个应用程序,我正在使用一个意图将活动中的数据发送到正常的类。我正在使用:

int level= (currentLevel*100)/scale;
Intent i = new Intent(context, caller.class);
i.putExtra("level",level);
context.startActivity(i);

在发送数据的类中(“percentage.class”)。

int p = getIntent().getIntExtra("level");

在接收数据的类中(“caller.class”) 这给了我一个错误:“Unknown method getIntent()”。 我该怎么做才能解决这个问题? 提前谢谢!

2 个答案:

答案 0 :(得分:1)

在你的问题中很容易说出问题是什么。您调用getIntent的类不会继承类Activity。

与其他人所说的继承不同,Activity不太可能为您提供所需的内容。我怀疑的是你在一个按钮或类似的东西中调用getIntent。因为它可能包含在一个不直接指向您的活动的方法中。你应该“保留”指向活动的指针。

通常,您正在寻找的内容应该在上下文中。如果您的上下文是我“相信”应该是的内容,则调用context.getIntent可能会有效。显示更多信息,让我们更好地了解正在发生的事情。因为getIntent是从活动中调用的。 getIntent与编写this.getIntent相同,但Java隐含地调用this上的函数,然后调用全局范围(导入的东西)。

如果您想避免此问题,请始终从this调用它,当您从处理程序中调用时,您可以将类中的引用保留为当前活动。我不太确定,但在一些对象上,你应该有一个函数getActivity,它将返回它们所在的活动。

你可能会有这样的事情。 obj.getActivity().getIntent()...

检查出来:What does getActivity() mean?

答案 1 :(得分:0)

getIntent()方法属于Activity类。如果您的课程没有延长Activity,您将收到此错误。尝试扩展Activity,看看它是否有效。