私はArrayListを作成しました。私はAndroidの携帯電話からテキストファイルを読み込み、各配列にString [3]を格納します。デバッガを使用して、各変数の値をトレースしました。 ArrayListの値は、常にbufferの値のように見えます。それらの間にリンクはありますか?Android Arraylist <String[]>は常にString []変数の値に従います
ArrayList<String[]> label_list = new ArrayList<>();
try {
FileInputStream fIn = new FileInputStream(getPath());
BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn));
String aDataRow = "";
String[] buffer = new String[3];
int j=0;
while ((aDataRow = myReader.readLine()) != null) {
if(!aDataRow.equals("")){
buffer[j]=aDataRow;
j++;
}else{
label_list.add(buffer);
j=0;
}
}
label_list.add(buffer); //for last one
myReader.close();
for(int i=0;i<label_list.size();i++){
txt_show.append(label_list.get(i)[0]);
}
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
私が読んだテキストファイル。
デバッガの結果。ご覧のとおり、すべての配列は同じ値を持ちます。 Arraylistの値は常にbufferの値に従います。
私は試しましたが運はありません。実際にはデバッグ中に、label_list.add(バッファ)を除いてすべて正常に動作することがわかりました。以前の値を上書きします。とにかくありがとう。 – SamTew