1

これは私が試したコードです:

FileWriter outFile = new FileWriter(getAssets().open("USCOUNTIES"),append);

ただし、コンパイル中にこのエラーが発生します:「メソッドgetAssets()はタイプclass1に対して未定義です」

このシナリオでの正しい使用法は何ですか?

4

3 に答える 3

2

アセットに書き込むことはできません。;open()を返します や他のものでInputStream書くことはできません。これは、発生しているエラーを超えています(ではないものを呼び出そうとしたために発生します)。InputStreamFileWritergetAssets()Context

于 2013-03-16T16:30:30.620 に答える
0

このメソッドgetAssets()Contextの一部であり、コンテキスト自体またはそのサブクラスで呼び出すことができますActivity。必要な場所にコンテキストを渡す必要があります

public void doSomethingRelatedToFiles(Context ctx){
    AssetManager am = ctx.getAssets();
   ...
}
于 2013-03-16T16:06:32.823 に答える
0

getAssets()メソッドは、Contextインターフェースで定義されます。したがって、発生したエラーは、class1がコンテキストインターフェイスを実装していないことを意味します。

基本的に、このメソッドは、ActivityクラスとServiceクラスおよびResourceクラスから利用できます。

したがって、コンテキストをメソッド引数として渡す必要があります。このようなことをしてください:

public void myMethod(Context context){
    ...
    FileWriter outFile = new FileWriter(context.getAssets().open("USCOUNTIES"),append);
    ...
}

myMethodまた、アクティビティから電話をかけていると仮定して、次のようにします。

class1Instance.myMethod(this);
于 2013-03-16T16:06:48.403 に答える