編輯:關於Android編程
Android開發中免不了數據本地的存儲,今天我們來說一說如何利用IO流來進行數據存儲。
這裡我們通過模擬一個QQ登陸界面的小demo來實際操作IO流。
功能描述:點擊按鈕能夠保存用戶輸入的用戶名和密碼,當點擊記住密碼時,亦能在應用第二次打開時,回顯用戶名和密碼
1.這裡布局文件的代碼就不貼了,看效果圖
2.MainActivity.java
package com.example.viewswitchtest;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.telephony.SmsManager;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText editAccount;
private EditText editPwd;
private Button btnLogin;
private CheckBox checkbox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 賬號edit
editAccount = (EditText) findViewById(R.id.edit_account);
// 密碼edit
editPwd = (EditText) findViewById(R.id.edit_pwd);
// 登陸button
btnLogin = (Button) findViewById(R.id.btn_login);
// 記住賬號和密碼checkbox
checkbox = (CheckBox) findViewById(R.id.checkbox);
// 回顯賬號和密碼
readAccountAndPwd();
btnLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (checkbox.isChecked()) {
String account = editAccount.getText().toString();
String pwd = editPwd.getText().toString();
// android為了防止開發人員手寫路徑容易出現錯誤,裝門提供了兩個API
// getFilesDir() --> 對應的路徑:data/data/項目包名/files
// getCacheDir() --> 對應的路徑:data/data/項目包名/cache
File file = new File(getFilesDir(), info.txt);
try {
FileOutputStream fos = new FileOutputStream(file);
fos.write((account + - + pwd).getBytes()); // 保存格式為account-password,方便分割
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Toast.makeText(MainActivity.this, login success, Toast.LENGTH_LONG).show();
}
});
}
/**
* 回顯用戶名和密碼
*/
private void readAccountAndPwd() {
File file = new File(getFilesDir(), info.txt);
if (file.exists()) {
try {
FileInputStream fis = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
String text = reader.readLine();
String[] infos = text.split(-);
// 回顯信息
editAccount.setText(infos[0]);
editPwd.setText(infos[1]);
fis.close();
reader.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
3.輸入賬號和密碼,點擊登陸按鈕,我們可以在DDMS中的file explore中看到保存的txt格式文件:
4.導出文件,通過文本編輯器打開驗證,賬號密碼是否正確:
可以看到賬號和密碼被正確的保存了,且格式正確。
5.關閉應用,再次打開
可以看到,數據能夠被正確的回顯到輸入框中,:-D!!!
前言 之前的文章有介紹ActivityGroup,不少人問嵌套使用的問題,同樣的需求在Fragment中也存在,幸好在最新的Android support 包
過濾操作符3.1 filter符合某種規則的Observable才會向下傳遞,例子 Observable.range(100,10).filter(new Fun
1、概述今天給大家帶來一個ViewPagerIndicator的制作,相信大家在做tabIndicator的時候,大多數人都用過TabPageIndicator,並且很多
先看效果圖 這個是我們自己的apk點擊之後的效果 下邊是布局文件vcD4KPHA+YWN0aXZpdHlfbWFpbi54bWzW97K8vtbOxLz+PG