У меня есть arraylist
, который я хочу отправить от 1 действия к другому, я использую сериализуемый, но в итоге получаю следующее сообщение об ошибке.
java.lang.RuntimeException: Parcelable обнаружена IOExceptionнаписание сериализуемого объекта (name = com.app ...)
Я также рассмотрел некоторые вопросы относительно этого на SO
, большинство из них сказали, что все классы, определенные внутри вашего Serialized
класс также должен реализовывать Serializable
, но здесь Path
, 'RectF', Matrix
, это не мои классы, это классы Android, и я не могу реализовать Serializable
в этих классах.
Вот так я отправляю список массивов из одного занятия в другое.
Intent intent= new Intent(MainActivity.this, DetailsActivity.class);
Bundle bundle= new Bundle();
bundle.putSerializable("PATH_LIST", pathsList);
bundle.putString("FILE_NAME", fileName);
intent.putExtras(bundle);
startActivity(intent);
и это мой класс.
public class TData implements Serializable {
Matrix originalMatrix;
public Path path;
PointF position;
private TData attachedPathData;
public void setAttachedPathData(TData pathData){
attachedPathData = pathData;
}
public TData getAttachedPathData(){
return attachedPathData;
}
public TData(){
}
public TData(Path path, PointF position, String id, String fillColor, String strokeColor){
this.path = path;
this.position = position;
this.id = id;
this.fillColor = fillColor;
this.strokeColor = strokeColor;
}
public void Scale(float scaleX, float scaleY){
this.scaleX = scaleX;
this.scaleY = scaleY;
Matrix scaleMatrix = new Matrix();
RectF rectF = new RectF();
path.computeBounds(rectF, true);
scaleMatrix.setScale(scaleX,scaleY);
path.transform(scaleMatrix);
Matrix mat = new Matrix();
path.computeBounds(rf, true);
Region r = new Region();
}
}