これは私が試したコードです:
FileWriter outFile = new FileWriter(getAssets().open("USCOUNTIES"),append);
ただし、コンパイル中にこのエラーが発生します:「メソッドgetAssets()はタイプclass1に対して未定義です」
このシナリオでの正しい使用法は何ですか?
これは私が試したコードです:
FileWriter outFile = new FileWriter(getAssets().open("USCOUNTIES"),append);
ただし、コンパイル中にこのエラーが発生します:「メソッドgetAssets()はタイプclass1に対して未定義です」
このシナリオでの正しい使用法は何ですか?
アセットに書き込むことはできません。;open()
を返します や他のものでInputStream
書くことはできません。これは、発生しているエラーを超えています(ではないものを呼び出そうとしたために発生します)。InputStream
FileWriter
getAssets()
Context
このメソッドgetAssets()
はContextの一部であり、コンテキスト自体またはそのサブクラスで呼び出すことができますActivity
。必要な場所にコンテキストを渡す必要があります
public void doSomethingRelatedToFiles(Context ctx){
AssetManager am = ctx.getAssets();
...
}
getAssets()メソッドは、Contextインターフェースで定義されます。したがって、発生したエラーは、class1がコンテキストインターフェイスを実装していないことを意味します。
基本的に、このメソッドは、ActivityクラスとServiceクラスおよびResourceクラスから利用できます。
したがって、コンテキストをメソッド引数として渡す必要があります。このようなことをしてください:
public void myMethod(Context context){
...
FileWriter outFile = new FileWriter(context.getAssets().open("USCOUNTIES"),append);
...
}
myMethod
また、アクティビティから電話をかけていると仮定して、次のようにします。
class1Instance.myMethod(this);