0

私はAndroidとJavaが初めてです。

アプリ内のいくつかのクラスを別のクラス ファイルに再配置しています。メイン アクティビティ クラス ファイルに onLocationListener クラスがありました。クラスを別の Java クラス ファイルに移動しました。ただし、次のコードはコンパイルされません。. .

public void onProviderDisabled(String provider)
{
     Toast.makeText( getApplicationContext(),
     "Gps Disabled",
     Toast.LENGTH_SHORT ).show();
}

このコードが別のファイルにある場合、getApplicationContext はコンパイルされません。私はこれを試しました。およびメインアクティビティ名。しかし、何も機能していないようです。したがって、この問題は次の質問にまとめることができると思います。

メイン アクティビティ ファイルの外側にある別の Java クラス ファイルに存在するコードからアプリケーション コンテキストをどのように記述しますか? ありがとう、ゲイリー

4

1 に答える 1

2

getApplicationContext()はクラスContextのメソッドであるため、何らかの方法で を拡張するクラスまたはオブジェクトからのみ呼び出すことができますContext。そのようなクラスであるActivityからコードを分解しました。したがって、解決策はContext、新しいクラスまたはオブジェクトを含むクラスがそのコンテキストを渡して、新しいクラスがそれを使用できるようにすることです。

メイン アクティビティ内のコードは次のようになります。

MyOwnClass ownObject = new MyOwnClass();
// you have to implement setApplicationContext
ownObject.setApplicationContext( this.getApplicationContext() );

アプリケーション コンテキストをすぐに取得することをお勧めします。これは、向きの変更などの単純な操作で消えてしまう可能性のあるアクティビティ コンテキストとは異なり、アプリの有効期間中安定しているからです。

于 2012-09-03T19:44:35.370 に答える