0

これを投稿する前に調査を行いましたが、問題が何であるかを正確に理解するのに苦労しています。これがクラス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()と関係があると思いますが、この問題を修正するために何をする必要があるのか​​正確にはわかりません。説明をいただければ幸いです。

4

2 に答える 2

3

scanメソッドを含むclass1に何かを渡す必要がありますか?

はい、 (非Activityクラスから)メソッドScanを直接呼び出すのではなく、Toastを表示するため に現在のActivityコンテキストをメソッドに渡す必要があります。スキャン方法を次のように変更します。getApplicationContext()Class1

public static void Scan(Context context) {
   //...your code here....
    Toast.makeText(context,"You can go to"  
                  +objarray.get(j).gettitle(),Toast.LENGTH_SHORT).show(); 

    }
于 2013-03-15T17:23:47.977 に答える
1

アプリケーションコンテキストをメソッドに渡してみましたか?Class1.Scan(getApplicationContext())

public static void scan(Context context) {
    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(context,"You can go to" +objarray.get(j).gettitle(),Toast.LENGTH_SHORT).show(); 

        }

    }
于 2013-03-15T17:24:39.110 に答える