編輯:關於Android編程
特點:
1、SharedPreference
本種存儲方式只做簡單的存儲,如其名字一樣。
優點:簡單方便,適合做簡單數據的快速保存
缺點:存放的文件只能在同一個包內,不能跨包引用
2、FIleInputStream/FileOutputStream
文件存儲方式。此種方式可以存放比較大的文件。還可以存儲到SDCARD中。可以跨包進行引用、可以存放到SDCARD上
案例Layout xml:
[html]
Layout xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="保存數據練習!"
android:textSize="20sp" android:textColor="#ff0000" android:id="@+id/tv_title" />
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="請輸入帳號" />
<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/editText_Login"
android:text=""></EditText>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="請輸入密碼" />
<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/editText_Password"
android:text=""></EditText>
<Button android:id="@+id/button_save" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="保存"></Button>
<Button android:id="@+id/button_load" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="取出數據"
android:visibility="invisible"></Button>
</LinearLayout>
Layout xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="保存數據練習!"
android:textSize="20sp" android:textColor="#ff0000" android:id="@+id/tv_title" />
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="請輸入帳號" />
<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/editText_Login"
android:text=""></EditText>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="請輸入密碼" />
<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/editText_Password"
android:text=""></EditText>
<Button android:id="@+id/button_save" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="保存"></Button>
<Button android:id="@+id/button_load" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="取出數據"
android:visibility="invisible"></Button>
</LinearLayout>
說明:
由於本篇主要是針對2種存儲方式的存儲和讀取進行說明並未把所有邏輯代碼都貼出來
存儲/讀取代碼:
[java]
sp = this.getSharedPreferences("zhang_data", this.MODE_PRIVATE);
sp.getString("login", "");
login.setText(sp.getString("login", ""));
pass.setText(sp.getString("password", ""));
對於上面的這一塊代碼塊中,sp為SharedPreferences對象。值得一說的是當getString拿數據的時候。會按照當前的key去搜索。如果沒有的話它會默認按照第二個參數進行返回。也就是空字符串””
保存:
sp.edit()
.putString("login", String.valueOf(login.getText()))
.putString("pass", String.valueOf(pass.getText()))
.commit();
attention.setText("保存成功!可重新打開此程序,測試是否已經保存數據!" +
"/n(或者在'File Explorer'窗口下-data-data-com.himi路徑下" +
"是否存在" +"了'zhanglei_data.xml')");
文件存儲方式:
讀取:
fis = this.openFileInput("save.zhang");
dis = new DataInputStream(fis);
login.setText(dis.readUTF());
pass.setText(dis.readUTF());
保存:
fos = this.openFileOutput("save.zhang", this.MODE_PRIVATE);
dos = new DataOutputStream(fos);
dos.writeUTF(login.getText().toString());
dos.writeUTF(pass.getText().toString());
attention.setText("保存成功!可重新打開此程序,測試是" +
"否已經保存數據!/n(或者在'File Explorer'" +
"窗口下-data-data-com.example.savestore.file路徑下" +
"是否存在了'save.zhang')");
sp = this.getSharedPreferences("zhang_data", this.MODE_PRIVATE);
sp.getString("login", "");
login.setText(sp.getString("login", ""));
pass.setText(sp.getString("password", ""));
對於上面的這一塊代碼塊中,sp為SharedPreferences對象。值得一說的是當getString拿數據的時候。會按照當前的key去搜索。如果沒有的話它會默認按照第二個參數進行返回。也就是空字符串””
保存:
sp.edit()
.putString("login", String.valueOf(login.getText()))
.putString("pass", String.valueOf(pass.getText()))
.commit();
attention.setText("保存成功!可重新打開此程序,測試是否已經保存數據!" +
"/n(或者在'File Explorer'窗口下-data-data-com.himi路徑下" +
"是否存在" +"了'zhanglei_data.xml')");
文件存儲方式:
讀取:
fis = this.openFileInput("save.zhang");
dis = new DataInputStream(fis);
login.setText(dis.readUTF());
pass.setText(dis.readUTF());
保存:
fos = this.openFileOutput("save.zhang", this.MODE_PRIVATE);
dos = new DataOutputStream(fos);
dos.writeUTF(login.getText().toString());
dos.writeUTF(pass.getText().toString());
attention.setText("保存成功!可重新打開此程序,測試是" +
"否已經保存數據!/n(或者在'File Explorer'" +
"窗口下-data-data-com.example.savestore.file路徑下" +
"是否存在了'save.zhang')");
兩周廢寢忘食的創作終於成功了,現在拿出來分享一下。先不說別的看一下程序運行效果圖,我沒怎麼設計ui所以界面不是很好看但是能說明問題~~~現在我們來看看實現這個功能需要些什
Android平台已經給我們提供了很多標准的組件,如:TextView、EditView、Button、ImageView、Menu等,還有許多布局控件,常見的有:Abs
一、效果圖二、描述更改Android項目中的語言,這個作用於只用於此APP,不會作用於整個系統三、解決方案(一)布局文件<LinearLayout xmlns:an
當前Activity:包含一個Button和一個TextView,用於啟動另一個Activity和顯示傳回的數據,這裡重寫了onActivityResult()方法。pu