オブジェクトをxmlに変換するために、独自のandroidシリアル化クラスを作成しています。バーの色、長方形、分割で構成されるバークラスを作成しました。
public class Bar {
String colour;
int Rect;
int Division;
public Bar(String colour, int Rect, int Division) {
this.colour = colour;
this.Rect = Rect;
this.Division = Division;
}
public String getColour() {
return colour;
}
public int getRect() {
return Rect;
}
public int getDivision() {
return Division;
}
}
私の主な活動では、2つのバーを作成し、それらを配列に追加します。配列をループして各バーの色を取得し、これをxmlファイルに書き込みたいと思います。ただし、ファイルが作成されると、xmlファイルに書き込まれるのは私のxmlヘッダーだけです。以下は私のコードです。
public class MainActivity extends Activity {
private String header = "[xmlDoc setVersion:@" + "\" 1.0 \"" + "]" + "\n";
private String barModel = "<barModel>" + "\n";
private String bars = "<bars>" + "\n";
private String bar = "<bar>" + "\n";
private String rect1 = "<rect>";
private String rect2 = "</rect>" + "\n";
private String divisions = "<divisions>";
private String divisions2 = "</divisions>" + "\n";
private String colorId = "<colorId>";
private String colorId2 = "</colorId>" + "\n";
ArrayList<Bar> barList;
Bar David;
Bar Perrine;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addtoArray();
saveModel();
setContentView(R.layout.activity_main);
}
public void addtoArray() {
List<Bar> barList = new ArrayList<Bar>();
barList.add(new Bar("Blue", 33, 8898));
barList.add(new Bar("Red", 6876, 65));
}
protected void saveModel() { // creat directory and file to write to File
File xmlFile = new File(Environment.getExternalStorageDirectory()
.getPath() + "/serializeObject");
xmlFile.mkdirs();
File file = new File(xmlFile, "personmodel.xml");
try {
FileWriter writer = new FileWriter(file);
writer.append(header);
writer.flush();
// iterate through bars
for (Bar array : barList) {
String colour = array.getColour();
writer.append(colorId);
writer.append(colour);
writer.append(colorId2);
writer.flush();
writer.close();
}
} catch (Exception e) {
// Log.d("Downloader", e.getMessage());
}
}
}
誰かが私を助けて、私がどこで間違っているのか教えてもらえますか?