实例134
* 使用Sharedpreferences保存用户输入的用户名和密码,并在第二个Activity中显示
*
* SharedPreferences 类供开发人员保存和获取基本数据类型的键值对,
* 该类主要用于基本类型,如booleans,floats,ints,longs,strings。
* 在应用程序结束后,数据仍会保存
* (但是本例运行之后我发现,程序退出之后,数据没有保存,不知道哪里出错了还是别的原因)
*
* 有两种方式可以获取SharedPreferences对象
* (1) getSharedPreferences():如果需要打个使用名称来区分的共享文件,
* 则可以使用该方法,其中第一个参数就是共享文件的名称,对于使用同一个名称获得的多个SharePregerences
* 引用,其指向同一个对象
*
* (2) getPreferences():如果Activity仅需要一个共享文件,则可以使用该方法.
* 因为只有一个文件,它不需要提供名称
*
* 完成向SharePreferences类添加值的方法步骤如下:
* (1)调用SharedPreferences 类的editor() 方法获得SharedPreferences.Editor对象
* (2)调用诸如putBoolean(),putString()等方法增加值
* (3)使用commit()提交新值
写入数据:
package com.example.sharedpreferences_134;
import com.example.sharedpreferences2.R;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class SharedPreferencesWriteActivity01 extends Activity {
/*写入数据*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shared_preferences_write);
final EditText usernameET = (EditText) findViewById(R.id.username);
final EditText passwordET = (EditText) findViewById(R.id.password);
Button login = (Button) findViewById(R.id.login);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String username = usernameET.getText().toString();
String password = passwordET.getText().toString();
//设置SharedPreference 对象类型为私有类型
SharedPreferences sp = getSharedPreferences("mrsoft", MODE_PRIVATE);
Editor editor = sp.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.commit();
Intent intent = new Intent();
intent.setClass(SharedPreferencesWriteActivity01.this, SharedPreferencesReadActivity01.class);
startActivity(intent);
}
});
}
}
读取数据:
package com.example.sharedpreferences_134;
import com.example.sharedpreferences2.R;
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.view.Menu;
import android.widget.TextView;
public class SharedPreferencesReadActivity01 extends Activity {
/*
* 实例134
* 使用Sharedpreferences保存用户输入的用户名和密码,并在第二个Activity中显示
*
* SharedPreferences 类供开发人员保存和获取基本数据类型的键值对,
* 该类主要用于基本类型,如booleans,floats,ints,longs,strings。
* 在应用程序结束后,数据仍会保存
* (但是本例运行之后我发现,程序退出之后,数据没有保存,不知道哪里出错了还是别的原因)
*
* 有两种方式可以获取SharedPreferences对象
* (1) getSharedPreferences():如果需要打个使用名称来区分的共享文件,
* 则可以使用该方法,其中第一个参数就是共享文件的名称,对于使用同一个名称获得的多个SharePregerences
* 引用,其指向同一个对象
*
* (2) getPreferences():如果Activity仅需要一个共享文件,则可以使用该方法.
* 因为只有一个文件,它不需要提供名称
*
* 完成向SharePreferences类添加值的方法步骤如下:
* (1)调用SharedPreferences 类的editor() 方法获得SharedPreferences.Editor对象
* (2)调用诸如putBoolean(),putString()等方法增加值
* (3)使用commit()提交新值
*
* */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shared_preferences_read_activity01);
TextView usernameTV = (TextView) findViewById(R.id.username);
TextView passwordTV = (TextView) findViewById(R.id.password);
//获取私有类型的SharedPerences
SharedPreferences sp = getSharedPreferences("mrsoft", MODE_PRIVATE);
String username = sp.getString("username", "mr");//获取用户名
String password = sp.getString("password", "001");//获取密码
usernameTV.setText("用户名:"+username);
passwordTV.setText("密 码:"+password);
}