0

extends ImageView クラスを取得しました。(レイアウトImageViewではなく、ImageViewを拡張するクラス)私が開発しているアプリでは、次を使用してGridViewから子を取得しようとしています:

MyCustomDefinedImageViewClass someThing =(MyCustomDefinedImageViewClass)gridViewIGetTheChildFrom.getChildAt(some int);

インターフェイスで定義されたボイドのいずれかでこれを呼び出すと、これは私が望むことを行います。

しかし、クラスが呼び出されたときにこれを呼び出したいので、次のように Context を取得したときに呼び出します。

public ImageCell (Context context) {
super (context);
MyCustomDefinedImageViewClass upe =(MyCustomDefinedImageViewClass)gridViewIGetTheChildFrom.getChildAt(some int);}

これにより、NullPointerException でクラッシュが発生し、logCat で「Caused By」と表示されます。

11-19 22:00:48.200: E/AndroidRuntime(6252):     at my.package.name.MyCustomDefinedImageViewClass.<init>(MyCustomDefinedImageViewClass.java:57)

GridView の子を取得できないのはなぜですか? 運の悪いスレッドで遅延を試みましたが、別のボイドを呼び出すと同じクラッシュが発生します。どうすれば子供を手に入れることができますか?

4

1 に答える 1

0

ヌル ポインターは、gridViewIGetTheChildFromオブジェクトのメソッドを呼び出そうとしているときに、実際にはオブジェクトがヌルであることを示唆しています。

LogそれgridViewIGetTheChildFromは実際には null ではなく、そこから移動します。

オブジェクトを渡すためのより良い方法を検討しますが、通常はインターフェイス/デリゲート/コールバックを使用することをお勧めします。

于 2012-11-19T22:39:39.427 に答える