2

資産をどのように使用しますか?私はこのコードを持っています:

AssetManager assets = getAssets();
InputStream stream = assets.open( "test.txt" );

Activity クラスでしか使えないようです。上記のコードを別のクラスで使用しようとすると、 getAssets() is not a type for my class というエラーが表示されます。

では、Activity ではないクラスでアセットを使用するにはどうすればよいでしょうか。

4

1 に答える 1

2

アクティビティのコンテキストを使用するクラスを渡す必要があります。アクティビティで正しいコンテキストを取得するには、次のようにします。

private Context ctx = null;

public void onCreate(Bundle bundle) {
    super.onCreate(bundle);
    // your other code
    ctx = getApplication();

    MyClass myClass = new MyClass(ctx);
}

MyClass は、あなたが話しているクラスです。クラスでは、クラス コンストラクターでコンテキストを処理する必要があります。

class MyClass {
    Context ctx = null;

    public MyClass(Context ctx) {
        this.ctx = ctx;
    }
}
于 2010-11-12T07:59:30.403 に答える