0

わかりましたので、ユーザー入力を求めるファイルを処理しています。私のプログラムは新しい選択でスピナーを更新します。

書き込み用のコードは次のとおりです。

public void writeOnFile(String string){
    try {
        FileOutputStream file = openFileOutput(fileName, Context.MODE_APPEND);
        file.write(string.getBytes());
        file.close();

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
    }

そして読む:

public void readOnFile(){

    try {
        FileInputStream file = openFileInput(fileName);
        if(file!=null){
            InputStreamReader inputreader = new InputStreamReader(file);
            BufferedReader buffreader = new BufferedReader(inputreader);
            String course;
            while((course = buffreader.readLine()) != null){
                                         adapter.add(course);
                }

        }
        file.close();

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
    }

そして、ここに私のスピナーのコードの一部があります:

courseSpinner = (Spinner) findViewById(R.id.courseSpinner);
    adapter = new ArrayAdapter <CharSequence> (this, android.R.layout.simple_spinner_item );

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    readOnFile();
    adapter.add("The Country Club");
    courseSpinner.setAdapter(adapter);

スピナーを更新すると、「コース 1」と「コース」2 という 2 つの選択肢が表示されるのではなく、「コース 1 コース 2」というテキストを含む 1 つの選択肢が表示されます:/

これを修正するにはどうすればよいですか?

4

1 に答える 1

0

文字列を改行で区切られたものとして解釈しているため、各文字列をファイルの新しい行に書き込む必要があります。

書き込みコードを次のように変更します。

public void writeOnFile(String string){
try {
    FileOutputStream file = openFileOutput(fileName, Context.MODE_APPEND);
    file.write(string.getBytes());
    file.write("\n".getBytes());
    file.close();

} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
}
于 2012-06-04T08:25:40.973 に答える