編輯:關於android開發
1,使用SharedPrefrences
用於簡單少量的數據,數據的格式簡單:都是普通的字符串,標量類型的值等,比如各種配置信息等等
SharedPrefrences與Editor簡介:
創建SharedPreferences實例,通過Context.getSharedPreferences(String name,int mode);方法來獲取SharedPreferences的實例
mode的值:
*Context.MODE_PRIVATE;該SharedPreferences數據只能被本應用程序調讀,寫
* Context.MODE_WORLD_READABLE;該SharedPreferences數據能被其他程序讀,但是不能寫
* Context.MODE_WORLD_WRITEABLE;該SharedPreferences數據能被其他程序讀,寫
SharedPreferences保存的數據主要是類似於配置信息格式的數據,因此他保存的數據主要是簡單類型的key-value對
* SharedPreferences接口主要負責讀取應用程序的Preferences數據,提供如下常用的方法訪問key-value對
* boolean contains(String key);判斷是否包含key的數據
* abstract Map
* boolean getXxx(String key,xxx,defValue);獲取指定的key對應的value值,如果key不存在,返回默認defvalue,xxx可以是Boolean,float,int,long,String等各種基本類型的值
SharedPreferences接口本身並沒有提供寫入數據的能力,而是通過 SharedPreferences的內部接口Editor寫入數據,SharedPreferences調用edit()方法即可獲得它所對應的Editor對象
Editor提供了如下方法:
* SharedPreferences.Editor clear();清空所有數據
* SharedPreferences.Editor putXxx(String key,xxx value);存入指定key對應的數據,xxx可以是Boolean,float,int,long,String等各種基本類型的值
* SharedPreferences.Editor remove(String key);刪除指定key的數據
* Boolean commit();當Editor編輯完成之後,調用該方法提交修改
例子:一個按鈕寫數據,一個按鈕讀數據
activity_main.xml
package com.hust.sharedpreferences; import java.text.SimpleDateFormat; import java.util.Date; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; /* * 創建SharedPreferences實例,通過Context.getSharedPreferences(String name,int mode);方法來獲取SharedPreferences的實例 * mode的值: * Context.MODE_PRIVATE;該SharedPreferences數據只能被本應用程序調讀,寫 * Context.MODE_WORLD_READABLE;該SharedPreferences數據能被其他程序讀,但是不能寫 * Context.MODE_WORLD_WRITEABLE;該SharedPreferences數據能被其他程序讀,寫 * * * SharedPreferences保存的數據主要是類似於配置信息格式的數據,因此他保存的數據主要是簡單類型的key-value對 * * SharedPreferences接口主要負責讀取應用程序的Preferences數據,提供如下常用的方法訪問key-value對 * boolean contains(String key);判斷是否包含key的數據 * abstract MapgetAll();獲取全部鍵值對 * boolean getXxx(String key,xxx,defValue);獲取指定的key對應的value值,如果key不存在,返回默認defvalue,xxx可以是Boolean,float,int,long,String等各種基本類型的值 * * SharedPreferences接口本身並沒有提供寫入數據的能力,而是通過 SharedPreferences的內部接口Editor寫入數據,SharedPreferences調用edit()方法即可互毆它所對應的Editor對象 * Editor提供了如下方法: * SharedPreferences.Editor clear();清空所有數據 * SharedPreferences.Editor putXxx(String key,xxx value);存入指定key對應的數據,xxx可以是Boolean,float,int,long,String等各種基本類型的值 * SharedPreferences.Editor remove(String key);刪除指定key的數據 * Boolean commit();當Editor編輯完成之後,調用該方法提交修改 * * */ public class MainActivity extends Activity { // SharedPreferences preferences; SharedPreferences.Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //實例化SharedPreferences對象,讀數據 preferences=getSharedPreferences("test",Context.MODE_WORLD_READABLE); //實例化Editor對象,寫數據 editor=preferences.edit(); Button read=(Button) findViewById(R.id.button2); Button write=(Button) findViewById(R.id.button1); read.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub String time=preferences.getString("time", null); int rnd=preferences.getInt("rnd", 0); String result=time==null?"您暫時還未寫入數據":"寫入時間:"+time+"\n上次生成的數據數是:"+rnd; Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show(); } }); write.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日"+"hh:mm:ss"); editor.putString("time", sdf.format(new Date())); editor.putInt("rnd", (int)(Math.random()*1000)); editor.commit(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
test.xml
待續。。。
Android SharedPreference的使用,sharedpreference在《Android 在內部存儲讀寫文件》一文中,談到了登錄用戶名和密碼的方法,通過
Android之自定義控件-城市選擇,android控件實現效果: 圖片素材:
RxAndroid使用方法介紹 熟悉RxAndroid的使用方法. 要點包含: (1) 鏈式表達式的使用方式. (2) Lambda的應用. (3) Rx處理網絡請求
showSetPwdDialog--自定義對話框,showsetpwddialog--樣式: