android序列化异常,drawable是不可序列化的异常

你好我是android开发新手。 我尝试制作一个需要4个输入字段和一张照片的列表。drawable是不可序列化的异常

名单应保存在内部存储,但我得到这个错误:

java.io.notserializableexception android.graphics.drawable.bitmapdrawable;

人bean类有4个字符串变量和一个可绘制。 感谢您的帮助。

package com.example.awais_pc.savedataapp;

import android.app.Dialog; import android.content.Context; import android.graphics.drawable.Drawable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ListView; import android.widget.Toast;

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

ListView listview;

String fileName = "data.txt";

ArrayList personBeans ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

listview = (ListView)findViewById(R.id.listView);

readDataInFile();

}

public void addRecord(View v){

myDialog();

}

public void myDialog(){

final ImageButton imgbtn;

final EditText name,pass,email,phone;

final Dialog dialog = new Dialog(this);

dialog.setContentView(R.layout.mydialog);

dialog.setCancelable(false);

name = (EditText)dialog.findViewById(R.id.editTextName);

pass = (EditText)dialog.findViewById(R.id.editTextPassword);

email = (EditText)dialog.findViewById(R.id.editTextEmail);

phone = (EditText)dialog.findViewById(R.id.editTextPhone);

imgbtn = (ImageButton) dialog.findViewById(R.id.imageButton);

Button save = (Button) dialog.findViewById(R.id.buttonSubmit);

save.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

String nam = name.getText().toString();

String pas = pass.getText().toString();

String em = email.getText().toString();

String ph = phone.getText().toString();

Drawable dra = imgbtn.getDrawable();

personBeans.add(new PersonBean(nam,pas,em,ph,dra));

listview.setAdapter(new Mycustomlist(personBeans, MainActivity.this));

dialog.dismiss();

}

});

dialog.show();

}

private void writeDataInFile(){

try {

FileOutputStream fos = openFileOutput(fileName, Context.MODE_PRIVATE);

ObjectOutputStream oos = new ObjectOutputStream(fos);

oos.writeObject(personBeans);

oos.flush();

oos.close();

fos.close();

} catch (Exception e) {

Toast.makeText(MainActivity.this, ""+e, Toast.LENGTH_SHORT).show();

e.printStackTrace();

}

listview.setAdapter(new Mycustomlist(personBeans, MainActivity.this));

} // Write File

private void readDataInFile(){

try {

FileInputStream fis = openFileInput(fileName);

ObjectInputStream ois = new ObjectInputStream(fis);

personBeans = (ArrayList)ois.readObject();

} catch (Exception e) {

personBeans = new ArrayList();

Toast.makeText(MainActivity.this, ""+e, Toast.LENGTH_SHORT).show();

e.printStackTrace();

}

listview.setAdapter(new Mycustomlist(personBeans, MainActivity.this));

}//Read File }

2016-09-12

Alex

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值