【发布时间】:2013-03-15 17:20:39
【问题描述】:
在发布此内容之前,我进行了研究,但我很难准确理解问题所在。所以这是我在第 1 课中的方法:
public static void scan() {
for( int j=0; j< objarray.size();j++)
{
locationB.setLatitude(objarray.get(j).getlat());
locationB.setLongitude(objarray.get(j).getlon());
float distance = locationA.distanceTo(locationB);
if((distance < 600)&&(distance > 0.0) )
{
Toast.makeText(getApplicationContext(),"You can go to" +objarray.get(j).gettitle(),Toast.LENGTH_SHORT).show();
}
}
此方法中的所有内容都是静态的,唯一给我错误的是 Toast.makeText 调用。我需要向包含 scan 方法的 class1 传递一些东西吗?
像这样:
Class1.Scan(something);
我认为这可能与 Toast 中的 getApplicationContext() 有关,但我不确定我需要做什么才能解决此问题。任何解释表示赞赏!
【问题讨论】:
-
您的错误信息到底是什么?请发布您的 logcat,以便我们提供帮助。
-
如果它是
NullhPointer异常,那么我会说objarray.get(j).gettitle()这不是静态的,你也错了,使用getApplicationContext尝试将当前活动的上下文传递给 Toast。 -
正如一些答案所暗示的那样,即使您说“此方法中的所有内容都是静态的”,但显然并非如此。
getApplicationContext()不是。虽然下面的一些答案解决了您的直接问题,但请考虑static methods are often an indicator of deeper problems in the design。 -
感谢歌舞子的建议!!!