0

好的,所以我正在处理我询问用户输入的文件,我的程序用新的选择更新 Spinner。

这是写的代码:

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);

当我更新 Spinner 而不是看到“课程 1”和“课程”2 这两个选择时,我看到一个带有文本“课程 1 课程 2”的选择:/

我该如何解决?

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 回答