第一天 android页面布局&数据读写

五种页面布局

  1. 线性布局  Linearlayout
  2. 绝对布局 Absolutelayout
  3. 贞布局 Framelayout
  4. 相对布局 Relativelayout
  5. 表哥布局 Tablelayout 

在内部存储中读写文件

//写文件

File file = new File("data/data/com.itheima.rwinrom/info.txt");
    FileOutputStream fos;
try {
fos = new FileOutputStream(file);
fos.write((name + "##" + pass).getBytes());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    }

//读文件

File file = new File("data/data/com.itheima.rwinrom/info.txt");
    if(file.exists()){
    try {
FileInputStream fis = new FileInputStream(file);
//把字节流转换成字符流
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
//读取txt文件里的用户名和密码
String text = br.readLine();
String[] s = text.split("##");

    et_name.setText(s[0]);
    et_pass.setText(s[1]);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    }


使用API读写

File file = new File(getCacheDir(), "info.txt");

File file = new File(getCacheDir(), "info.txt");

  public void readAccount(){
//     File file = new File(getFilesDir(), "info.txt");
    File file = new File(getCacheDir(), "info.txt");
    if(file.exists()){
    try {
FileInputStream fis = new FileInputStream(file);
//把字节流转换成字符流
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
//读取txt文件里的用户名和密码
String text = br.readLine();
String[] s = text.split("##");

    et_name.setText(s[0]);
    et_pass.setText(s[1]);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    }
    }


    public void login(View v){
   
    String name = et_name.getText().toString();
    String pass = et_pass.getText().toString();
   
    CheckBox cb = (CheckBox) findViewById(R.id.cb);
    //判断选框是否被勾选
    if(cb.isChecked()){
    //返回一个File对象,其路径是data/data/com.itheima.apirwinrom/files
//     File file = new File(getFilesDir(), "info.txt");
   
    //返回值也是一个File对象,其路径是data/data/com.itheima.apirwinrom/cache
    File file = new File(getCacheDir(), "info.txt");
    FileOutputStream fos;
try {
fos = new FileOutputStream(file);
fos.write((name + "##" + pass).getBytes());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    }

在外部存储中读写文件


if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))  //SD卡可用

File file = new File(Environment.getExternalStorageDirectory(), "info.txt"); //API访问路径


sharepreference

用于保存账户密码

 public void readAccount(){
   SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
   String name = sp.getString("name", "");
   String pass = sp.getString("pass", "");
   
et_name.setText(name);
et_pass.setText(pass);
    }


    public void login(View v){
   
    String name = et_name.getText().toString();
    String pass = et_pass.getText().toString();
   
    CheckBox cb = (CheckBox) findViewById(R.id.cb);
    //判断选框是否被勾选
    if(cb.isChecked()){
    //使用sharedPreference来保存用户名和密码
    //路径在data/data/com.itheima.sharedpreference/share_
    SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
    //拿到sp的编辑器
    Editor ed = sp.edit();
    ed.putString("name", name);
    ed.putString("pass", pass);
    //提交
    ed.commit();
    }
   
    //创建并显示吐司对话框
    Toast.makeText(this, "登录成功", 0).show();
    }

XML序列化器

public void click(View v){
//使用xml序列化器生成xml文件
//1.拿到序列化器对象
XmlSerializer xs = Xml.newSerializer();
//2.初始化
File file = new File("sdcard/sms2.xml");
try {
FileOutputStream fos = new FileOutputStream(file);
//enconding:指定用什么编码生成xml文件
xs.setOutput(fos, "utf-8");

//3.开始生成xml文件
//enconding:指定头结点中的enconding属性的值
xs.startDocument("utf-8", true);

xs.startTag(null, "message");

for (Message sms : smsList) {
xs.startTag(null, "sms");

xs.startTag(null, "body");
xs.text(sms.getBody() + "<body>");
xs.endTag(null, "body");

xs.startTag(null, "date");
xs.text(sms.getDate());
xs.endTag(null, "date");

xs.startTag(null, "type");
xs.text(sms.getType());
xs.endTag(null, "type");

xs.startTag(null, "address");
xs.text(sms.getAddress());
xs.endTag(null, "address");

xs.endTag(null, "sms");
}

xs.endTag(null, "message");

//告诉序列化器,文件生成完毕
xs.endDocument();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();

}

pull解析


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值