我要做的是以下......
FileInputStream fIn;
try {
fIn = openFileInput("samplefile.txt");
InputStreamReader isr = new InputStreamReader(fIn);
BufferedReader br = new BufferedReader(isr);
isTrue = Boolean.parseBoolean(br.readLine());
Log.i("IN", "isTrue = " + isTrue);
}
但这只会在扩展Android内Activity类的类中起作用。
我有一个“设置”类,可以从文件中写入和读取当前游戏设置,但是这个文件有很多我真的不想操作的数据。
我最初使用BufferedReader
& BufferedWriter
但我无法将数据设置为私有,这意味着任何人都可以编辑该文件。使用OutputStreamWriter
,至少
如何让我的切除“设置”类(具有完全静态方法)可以访问上下文,因此我可以使用诸如openFileInput
答案 0 :(得分:3)
为具有Context参数的Settings类创建构造函数。然后,当您从该类实例化该对象时,只需传递您的应用程序上下文即可。
构造
public Settings(Context cont)
{
//do something with the context, e.g assign it to some private variable of type Context
}
在您的活动课程中:
Settings settings = new Settings(MyActivity.this);
答案 1 :(得分:1)
使用File
类更合适,而不是传递上下文。您应该尽可能避免将上下文传递给其他类。
File file = new File("sample.txt");
InputStream is = new FileInputStream(file);
另一种选择可能是将上下文传递给方法。
boolean isTrue = Settings.readBoolean(MyClass.this);
答案 2 :(得分:0)
如果您将多个片段与多个活动一起使用,则没有一种获取上下文的快捷方法。 创建一个静态类。 定义上下文。 每当您更改活动时,请更改上下文。 使用该静态类获取片段中的上下文。 我知道您可以通过getactivity()在片段中获取上下文,但是如果您使用某些适配器或非上下文类,这将非常有用