assets
名前を付けたクラスでアクセスしたいフォルダーにファイルがありますStorageManager
(通常のクラスで、何も拡張しません):
public class StorageManager {
private Context context;
public StorageManager(Context context){
this.context=context;
}
public String readFileAsString(String filePath) throws java.io.IOException {
AssetManager am = context.getAssets();
InputStream is = am.open(filePath);
String results = "";
int data = is.read();
while (data !=-1) {
results += (char)data;
data = is.read();
}
is.close();
return results;
}
}
内にこのクラスのインスタンスを作成し、コンテキストとしてListFragment
渡します。getActivity()
readFileAsString
ただし、有効なfilePath
を呼び出すとNullPointerException
、次の行が表示されます。
AssetManager am = context.getAssets();
これは、コンテキストが null であることを意味すると想定しています。しかし、なぜ?これを修正するにはどうすればよいですか?
編集
その呼び方:
public class MyListFragment extends ListFragment {
public View onCreateView(LayoutInflater inflater, .....etc) {
...
StorageManager storage = new StorageManager(getActivity());
try{
String filetext = readFileAsString("file");
}catch(...)}
...
}
}