android之SharedPreferences (转载)

主要功能:
主界面有两个编辑框,一个是用户名.一个是密码
输入后退出,再次启动时,上次输入的数据仍然显示

代码及注释如下:

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;

public class hwj_AndroidSP extends Activity {
    public static final int EXIT_ID = Menu.FIRST;
    
    public static final String SETTING_INFO = "setting_infos";
    public static final String NAME = "name";
    public static final String PASSWORD = "password";
    private EditText field_name;  //接受用户名的组件
    private EditText field_pass;  //接收密码的组件
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        field_name = (EditText)findViewById(R.id.name);
        field_pass = (EditText)findViewById(R.id.password);
        
        SharedPreferences settings = getSharedPreferences(SETTING_INFO, 0);  //获取一个对象
        
        String name = settings.getString(NAME, "");   //取出保存的NAME
        String password = settings.getString(PASSWORD, "");
        
        field_name.setText(name); /    /将取出的NAME赋给filed_name
        field_pass.setText(password);
        
    }
    
   @Override public boolean onCreateOptionsMenu(Menu menu){
       super.onCreateOptionsMenu(menu);
       menu.add(0, EXIT_ID, 0, "EXIT");
       return true;
   }
   
   @Override public boolean onOptionsItemSelected(MenuItem item){
       switch (item.getItemId()){
       case EXIT_ID:
           finish();
           break;
       }
       return super.onOptionsItemSelected(item);
   }
    protected void onStop(){
        super.onStop();
        SharedPreferences settings = getSharedPreferences(SETTING_INFO, 0);
        settings.edit().putString(NAME, field_name.getText().toString()).putString(PASSWORD, field_pass.getText().toString()).commit();
    }
}

/*
  代码解释:

通过上述代码可以看到,在onCreate中使用findViewById得到两个EditView后,
使用 getSharedPreferences取得SharedPreferences对象settings,
然后使用getString取得其中保存的值,最后使用setText将其值设置为两个EditText的值。

而在程序运行onStop过程,也就是在程序退出时,首先使用getSharedPreferences得到settings;
然后调用 edit()方法使其处于可以编辑状态,并使用putString将两个EditText中的值保存起来;
最后使用commit()方法提交即可保存。
 */

posted @ 2011-08-16 16:55  eoollo_fei  阅读(1577)  评论(0)    收藏  举报