SharedPreferences(手機自帶內存)讀和寫基本操做android
效果圖示例:app
一、activity_mian.xml佈局文件dom
代碼編輯器
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >ide
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />佈局
<Button
android:id="@+id/bt_writer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="寫數據"
android:onClick="writer"/>字體
<Button
android:id="@+id/bt_read"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="讀數據"
android:onClick="read"/>this
</LinearLayout>xml
-----------------------------事件
二、menu文件下的佈局set_activity.xml佈局文件
代碼
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/font_add"
android:title="加大字體"/>
<item
android:id="@+id/font_sub"
android:title="減少字體"/>
<item
android:id="@+id/font_color"
android:title="字體顏色"/>
<item
android:id="@+id/bg_color"
android:title="背景顏色"/>
</menu>
==============================
三、MianActivity 類
代碼
public class MainActivity extends Activity {
private TextView textview; private float font_size; private int font_color; private int bg_color; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.textview = (TextView) this.findViewById(R.id.textview); //一打開app 就讀 寫好的數據 read(null); //註冊textview registerForContextMenu(textview); } // 建立一個上下文菜單 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); getMenuInflater().inflate(R.menu.set_menu, menu); } //重寫上寫文菜單 點擊 事件 監聽 @Override public boolean onContextItemSelected(MenuItem item) { switch(item.getItemId()){ case R.id.font_add: font_size+=5; textview.setTextSize(font_size); break; case R.id.font_sub: font_size-=5; textview.setTextSize(font_size); break; case R.id.font_color: font_color = Color.rgb((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255)); textview.setTextColor(font_color); break; case R.id.bg_color: bg_color = Color.rgb((int)(Math.random()*255), (int)(Math.random()*255), (int)(Math.random()*255)); textview.setBackgroundColor(bg_color); break; } return super.onContextItemSelected(item); } //寫數據 public void writer(View view){ //第一個參數 -- 要把數據 寫入到的文件名 //第二個參數 -- 寫入數據的時候 是什麼 模式 //數據保存在 data/data/包名 SharedPreferences preferences = getSharedPreferences("my_data", Context.MODE_PRIVATE); //得到 編輯器 SharedPreferences.Editor editor = preferences.edit(); //用得到的編輯器 寫入數據 editor.putFloat("fontsize", font_size); editor.putInt("fontcolor", font_color); editor.putInt("bgcolor", bg_color); //提交 editor.commit(); } //讀數據 public void read(View view){ SharedPreferences preferences = getSharedPreferences("my_data", Context.MODE_PRIVATE); //讀取 數據 font_size = preferences.getFloat("fontsize", 60); font_color = preferences.getInt("fontcolor", Color.BLUE); bg_color = preferences.getInt("bgcolor", Color.WHITE); textview.setTextSize(font_size); textview.setTextColor(font_color); textview.setBackgroundColor(bg_color); } //一按退出 就保存當前的數據 @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); //一按退出 就保存當前的數據 writer(null); }}