在發佈之前,我做了我的研究,但我正在努力確切地瞭解問題所在。所以這是我在1類方法:爲什麼我不能從另一個包含Toast的類調用靜態方法?
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電話。我是否需要將某些東西傳遞給包含掃描方法的class1?
像這樣:
Class1.Scan(something);
我覺得這可能有一些做的吐司內getApplicationContext(),但我不能確定到底是什麼,我需要爲了解決這個問題做。任何解釋讚賞!
什麼是您的錯誤味精?請張貼您logcat,所以我們可以提供幫助。 – 2013-03-15 17:24:03
如果它的'NullhPointer'異常,那麼我會說'objarray.get(j).gettitle()'這不是靜態的,你也可以通過使用'getApplicationContext'嘗試將當前活動的上下文傳遞給Toast。 – Prateek 2013-03-15 17:26:00
正如其中一些答案暗示的那樣,即使你說「這個方法中的所有內容都是靜態的」,但事實並非如此。 'getApplicationContext()'不是。儘管下面的一些答案解決了您的直接問題,但請考慮[靜態方法通常是設計中更深層問題的指示器](http://www.benday.com/2010/03/15/article-static-methods-是-A-代碼氣味/)。 – kabuko 2013-03-15 17:29:13