1

BaseAdapter を拡張するクラス BinderData から 2 つのクラスがあります (BaseAdapter に拡張する必要があるため、このクラスを Activity に拡張することはできません)。次のコードでクラス AssetActivity を呼び出しています。

AssetActivity a = new AssetActivity();
Drawable image=a.getImage(imageUri);

ここで imageuri は文字列であり、適切に入力されています。私が使用しているコードに続く AssetActivity クラスで。

public class AssetActivity extends Activity {
    private static final String TAG = "AssetActivity";

    public Drawable getImage(String imgName) {

        String nextImageName = imgName+ ".jpg";
        AssetManager assets = getAssets(); // get app's AssetManager
        InputStream stream; // used to read in Image images     
        Drawable flag=null;
        try {
            // get an InputStream to the asset representing the next Image
            stream = assets.open(nextImageName );

            // load the asset as a Drawable and display on the objImageView
             flag = Drawable.createFromStream(stream, nextImageName);
        } // end try
        catch (IOException e) {
            Log.e(TAG, "Error loading " + nextImageName, e);
        } // end catch
        return flag;
    }
} 

コードを実行すると、次の行で NullPointerException が発生します。

AssetManager assets = getAssets();

アセット フォルダーにアセットがあり、明示的に getAssets() メソッドを呼び出し、そのクラスがアクティビティを拡張する他のクラスでそれらを取得できます。これで私を助けてください。BinderData クラスで getImage メソッドを呼び出す際に何か間違ったことをしているのではないかと疑っています。私を助けてください。ありがとう。

4

1 に答える 1