0

我正在开发一个包含不同测试的应用程序,并且对于每个测试(活动)都需要读取不同的 txt 文件。我知道这样做,但手动更改它。当特定活动正在运行时,怎么可能读取正确的 txt。例如,对于活动 1,我需要阅读 1.txt 等等。这是我阅读txt的代码。

String questionFile = "";
questionFile = "1.txt";
questionCount = 20;

Log.i("Question", questionFile + ": " + questionCount);
try {
    InputStream is = context.getAssets().open(questionFile);
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    // Skips lines
    for (i = 0; i< questionNumber; i++) {
        reader.readLine();
    }
    question = reader.readLine();
} catch (IOException e) {
    e.printStackTrace();
}
4

1 回答 1

2

您需要将当前代码放在单独的类中,并创建一个从资产读取文件的方法,具体取决于当前运行的活动:

public class GetFileAssets {
Context context;

public GetFileAssets(Context context){
 this.context=context;
 }

public String readFilefromAssets(String str_file_id){
  String questionFile = "";
  questionFile = str_file_id;
  questionCount = 20;

  //... your code here

  return question;
 }

}

现在将文件编码传递给 Activity .like 从 Activity 1:

GetFileAssets obj=new GetFileAssets(Activity1.this);
String str=obj.readFilefromAssets("1.txt");

与活动 2 相同:

GetFileAssets obj=new GetFileAssets(Activity2.this);
String str=obj.readFilefromAssets("2.txt");
于 2013-02-05T09:32:04.037 回答