-1

私はAndroidアプリをプログラミングしています。

ApplicationContext という Application を拡張するクラスがあります

この呼び出しを行うと、クラスキャストの実行で爆発します

ApplicationContext appContext = (ApplicationContext) getApplicationContext();

なぜこれが起こっているのか誰にも分かりますか?

ありがとう

4

2 に答える 2

2

という名前のクラスがありApplicationContextますか?SDK に同じ名前のクラスが既に存在するためです。クラスの名前を変更します。

とにかく、オブジェクトを返すgetApplicationContext()メソッドです。Contextandroid.content.Context

列に並んでいる場合、

ApplicationContext appContext = (ApplicationContext) getApplicationContext();

ApplicationContextYOUR class を参照するとApplicationContext、クラス キャスト例外が発生getApplicationContext()します。YOUR クラスを返さないため、android.context.Context. その場合、行を次のように変更します。

android.content.ApplicationContext appContext = getApplicationContext();

私はあなたのインポートを見ることができないので、問題は実際には逆である可能性があります. ApplicationContextを参照しandroid.content.ApplicationContext、 をgetApplicationContext()返すあなたのメソッドですyour.package.ApplicationContext。その場合、行を次のように変更します。

your.package.ApplicationContext appContext = getApplicationContext();
于 2012-09-20T21:03:23.097 に答える
0

Androidのクラスは公開されていないと思いますApplicationContext。これは、AndroidSDKクラス専用の抽象クラスだと思います。

また、拡張アプリケーションクラスにコンテキストを割り当てることはできません。を拡張する必要がありますContext

于 2012-09-21T01:59:50.690 に答える