1
我對Android Studio比較陌生。基本上我想要做的是爲QR掃描儀創建一種歷史文件。我掃描的任何內容都會放入History.txt文件中。它工作但不是我想要的方式。這是第一次掃描後,檢查歷史的結果:將文本文件讀入ListView(應用程序添加到ListView兩次)?
這是當我檢查了第二次掃描會發生什麼:
這是我的OutputWriter代碼:
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("History.txt", Context.MODE_APPEND));
outputStreamWriter.write(rawResult.getText()); // the scan result
outputStreamWriter.append("\n\r");
outputStreamWriter.close();
} catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
這是顯示歷史記錄的活動:
public class ResultsActivity extends AppCompatActivity {
ListView ResultsListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_results);
ResultsListView = (ListView) findViewById(R.id.ResultsListView);
readFromFile();
}
private String readFromFile() {
String ret = "";
ArrayList<String> lines = new ArrayList<>(); // stores lines from text file.
try {
InputStream inputStream = openFileInput("History.txt");
if (inputStream != null) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
StringBuilder stringBuilder = new StringBuilder();
while ((receiveString = bufferedReader.readLine()) != null) {
stringBuilder.append(receiveString);
lines.add(stringBuilder.toString());
}
inputStream.close();
// put results in ListView
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, lines);
ResultsListView.setAdapter(adapter);
}
} catch (FileNotFoundException e) {
Log.e("Exception", "File not found: " + e.toString());
} catch (IOException e) {
Log.e("Exception", "Can not read file: " + e.toString());
}
return ret;
}
}
我不知道爲什麼事情在ListView中出現兩次。看了一會兒,卻沒有看到任何東西。我很抱歉,如果這是一個簡單的錯誤。我仍然熟悉Android Studio。任何一點幫助將不勝感激。非常感謝你。
你檢查了
rawResult.getText()
結果嗎?函數readFromFile()沒問題。我認爲你的輸入錯誤。 –