そのため、現在、一連の文字列タイトルをユーザーの電話のファイルにまとめて保存し、後で (アプリを再起動したときに) 読み取ります。文字列を読み返し、設定した区切り文字で分割しようとしていますが、何らかの理由で分割してから文字列を2倍にします...
たとえば、これらの文字列を保存した場合
Ricky(har)Bobby(har)is(har)cool(har)
(har) は、それらを格納するために使用する区切り文字です。(例えば)
なぜか、「har」で分割機能を使用すると、
文字列の配列が得られますが、保存した数は 2 倍になります...したがって、文字列の配列には、2 つの Ricky の 2 つの Bobby の 2 つの Is と 2 つの Cool が含まれます。正直なところ、何が起こっているのか途方に暮れています。これを何時間も見つめていた...誰か何か知っていますか?
line = BR.readLine();
String[] each = line.split("<TAG>");
for (int i = 0; i < each.length; i++) {
listOfCourses.add((each[i]));
//Toast.makeText(context, each[i], Toast.LENGTH_SHORT).show();
}
ユーザーの電話にデータを保存する関数は次のとおりです
//adds data into the classes file on user's phone
public void addClassesIntoFile(Context context, ArrayList<String> classList) {
try {
FileOutputStream fos = context.openFileOutput(CLASSLIST_FILENAME,
Context.MODE_PRIVATE | Context.MODE_APPEND);
OutputStreamWriter osw = new OutputStreamWriter(fos);
for (int i = 0; i < classList.size(); i++) {
osw.write(classList.get(i) + "<TAG>");
}
osw.flush();
osw.close();
} catch (FileNotFoundException e) {
// catch errors opening file
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}