0

だから私はAndroidが初めてで、Androidコンテキストがどのように機能するのか、何がコンテキストに含まれているのか、何が含まれていないのかについて混乱していると思います。アクティビティで View.OnClickListener を実装するクラスを含む Java ファイルをインポートした場合、それはコンテキストの一部としてカウントされますか? また、View.OnClickListener を実装する NewOnClick という名前のクラスがある場合、android:OnClick="NewOnClick" を使用できますか、それともメソッドでのみ機能しますか。私が尋ねる理由は、ほとんどのアクティビティに含まれるハンドラーを書きたいからです。

また、コンテキストが正確に何をするかを誰かが説明できる方法はありますか?これらの他の多くのコンテキストは、それが何のためにあるのかを実際に説明していないか、他のウィジェットに渡されてリソースを管理していると言っているだけです。これは実際にはあまり説明的ではありません私の意見では、GTK (gtkmm) または wxWidgets を使用したことのある人が理解できるような方法で説明していただければと思います。

4

2 に答える 2

0

Context は、アプリケーション、Activity、サービスなどの基本クラスであるという簡単な見方があります。したがって、Activity 内のすべては Context から継承されます。Android のコンテキストは、現在実行中のコードが存在する環境です。これは、使用可能なすべてのものと、それに影響を与えるすべてのもの (少なくとも、アクセスできるもの) を意味します。

たとえば、アクティビティ内では、「これ」は現在のアクティビティを指し、これはコンテキストから継承されるため、現在のコンテキスト内のすべてに加えて、アクティビティで定義されているもの (ローカル フィールド、追加のメソッドなど) にアクセスします。

ここで間接サブクラスを見てください。

http://developer.android.com/reference/android/content/Context.html

注意。派生クラスのライフ サイクル外にコンテキストを公開しないでください。たとえば、コンテナよりも長いライフサイクルを持つオブジェクトを参照にぶら下げさせないでください。

http://android-developers.blogspot.co.uk/2009/01/avoiding-memory-leaks.html

混乱するのではなく、これが役立つことを願っています。

于 2012-09-09T21:39:37.830 に答える
0

ドキュメントから、

コンテキストは次のとおりです。

アプリケーション環境に関するグローバル情報へのインターフェイス。[...] アプリケーション固有のリソースとクラスへのアクセス、およびアクティビティの起動、インテントのブロードキャストと受信などのアプリケーションレベルの操作のアップコールを許可します。

たとえば、画像の表示、オーディオ ファイルの再生、カスタム フォントの設定 (画像、オーディオ ファイル、フォント - すべてリソース) など、アプリケーションでいくつかのリソースにアクセスする必要がある場合は、Context 参照が必要になります。 .
このActivityクラスは から継承されContextます。これがおそらく Context を「感じなかった」理由ですが、実際にはどこでも使用しています。

于 2012-09-09T21:40:05.280 に答える