天天看点

Android 存取数据之SharedPreferences

Android 程序简单数据的存取。

public class MainActivity extends Activity {

  /********************************************
   * 当有少量应用程序数据需要保存的时候就可以用SharedPreferences来进行保存。 SharedPreferences
   * 适用于保存类似于配置信息格式的数据。主要是简单的键值类型的key-valued对。
   * 
   * 本示例展示了利用SharedPreferencs来进行存取数据。 使用步骤:
   * 
   * 1.获取SharedPreferences对象 getSharedPreferences("MyData",
   * MODE_WORLD_READABLE);
   * 
   * 2.获取SharedPreference.Edit 对象 editor = sharedPreferences.edit();
   * 
   * 3.输入数据 字符串: editor.putString("time", sdf.format(new Date())); 整数:
   * editor.putInt("random", (int) (Math.random()*100));
   * 
   * 4.提交数据 editor.commit();
   * 
   * 5.读取数据 String timeString = sharedPreferences.getString("time", null); int
   * randNum = sharedPreferences.getInt("random", 0);
   * 
   * 注意:SharedPreference保存的文件位于/data/data/包名/shared_prefs下。
   ********************************************/

  SharedPreferences sharedPreferences;
  SharedPreferences.Editor editor;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button readButton = (Button) findViewById(R.id.readButton);
    Button writeButton = (Button) findViewById(R.id.writeButton);

    // 获取只能被程序读写的SharedPreferences对象 如果不存在将被创建,这里设置为可以被其他程序读
    sharedPreferences = getSharedPreferences("MyData", MODE_WORLD_READABLE);
    editor = sharedPreferences.edit();

    writeButton.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("random", (int) (Math.random() * 100));
        editor.commit();
      }
    });

    readButton.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        // TODO Auto-generated method stub
        String timeString = sharedPreferences.getString("time", null);
        int randNum = sharedPreferences.getInt("random", 0);
        Toast.makeText(MainActivity.this,
            "time: " + timeString + "\nrandNum: " + randNum,
            Toast.LENGTH_SHORT).show();
      }
    });
  }

  @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;
  }

}