package org.android.textbook.lesson5.saveserializable;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class SaveSerializeSampleActivity extends Activity {
private EditText mEditTextId;
private EditText mEditTextString;
private static final String SAVE_FILE_NAME = "SerializeSaveData.dat";
private static final String READ_ERROR_STRING = "ERROR";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_save_serialize_sample);
Button save = (Button) findViewById(R.id.button_save);
save.setOnClickListener(mOnClickListener);
Button load = (Button) findViewById(R.id.button_load);
load.setOnClickListener(mOnClickListener);
mEditTextId = (EditText) findViewById(R.id.edit_input_id);
mEditTextString = (EditText) findViewById(R.id.edit_input_string);
}
private OnClickListener mOnClickListener = new OnClickListener() {
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.button_save:
// データクラスを生成しデータを保存する
SerializableData saveData = new SerializableData();
saveData.setId(Integer.parseInt(mEditTextId.getText().toString()));
saveData.setText(mEditTextString.getText().toString());
try {
FileOutputStream fileOutputStream = openFileOutput(SAVE_FILE_NAME,
MODE_PRIVATE);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(
fileOutputStream);
objectOutputStream.writeObject(saveData);
objectOutputStream.close();
mEditTextId.setText("");
mEditTextString.setText("");
} catch (Exception e) {
mEditTextId.setText(READ_ERROR_STRING);
mEditTextString.setText(READ_ERROR_STRING);
}
break;
case R.id.button_load:
try {
FileInputStream fis = openFileInput(SAVE_FILE_NAME);
ObjectInputStream ois = new ObjectInputStream(fis);
SerializableData data = (SerializableData) ois.readObject();
mEditTextId.setText(String.valueOf(data.getId()));
mEditTextString.setText(data.getText());
ois.close();
} catch (Exception e) {
mEditTextId.setText(READ_ERROR_STRING);
mEditTextString.setText(READ_ERROR_STRING);
}
break;
}
}
};
}