0

私のAndroidアプリには本当に厄介な問題が1つあり、問題が何であるかを理解できません。

私は次のようなアニメーションオブジェクトを作成しようとしています:

Animation anim = AnimationUtils.makeInChildBottomAnimation(Myclass.this);

これはLogCatです:

01-01 15:25:37.730: E/AndroidRuntime(10277): FATAL EXCEPTION: main
01-01 15:25:37.730: E/AndroidRuntime(10277): java.lang.NullPointerException
01-01 15:25:37.730: E/AndroidRuntime(10277):    at android.content.ContextWrapper.getResources(ContextWrapper.java:81)
01-01 15:25:37.730: E/AndroidRuntime(10277):    at android.view.animation.AnimationUtils.loadAnimation(AnimationUtils.java:71)
01-01 15:25:37.730: E/AndroidRuntime(10277):    at android.view.animation.AnimationUtils.makeInChildBottomAnimation(AnimationUtils.java:253)

クラスのコンテキストを取得することと関係があると思います。また、xmlファイルからアニメーションをロードしてalhpaアニメーションを作成しようとしましたが、両方でNPEを取得します。

電話をかけsetContentView();onCreateいるので、なぜこのエラーが発生するのかわかりません。このクラスでは、を宣言し、xmlレイアウトでにViewPagerAdapter設定します。ViewPagerアダプタークラスのiamで、ImageViewに表示されているのロングクリックをチェックしますViewPager。ユーザーが長押しすると、エラーが発生しているクラスの静的メソッドが呼び出されます。静的メソッドは、次のような非静的メソッドを呼び出す新しいオブジェクトを作成します。

    ViewPagerClass d = new ViewPagerClass();
    d.showMenu();

このshowMenu方法では、フェードインするこのアニメーションを作成しようとしRelativeLayoutますが、失敗します。

4

1 に答える 1

0

コメントに続いて、であるViewPagerClassクラスをインスタンス化しているようですActivityActivity手動でインスタンス化されたものには有効なContext関連付けがなく、存在しないものを使用しようとすると例外が発生するため、これは正しくありませんContext。アクティビティは、Androidシステムによって作成および管理されることを目的としています。

ユーザーが長押しすると、エラーが発生しているクラスの静的メソッドが呼び出されます。静的メソッドは、次のような非静的メソッドを呼び出す新しいオブジェクトを作成します。

これをしないでください。ViewPagerAdapterViewPagerClassクラスが異なるファイルにある場合は、コンストラクターを変更してViewPagerAdapterContext参照(an ActivityViewPagerClass)は)を渡し、インスタンスを作成するときにContext割り当てthisます。次に、その参照を使用して、画像のロングクリックでメソッドを呼び出します。ViewPagerClass.thisViewPagerAdapterContextViewPagerAdaptershowMenu()

于 2013-01-01T18:19:37.247 に答える