SharedPreferences的用法:
由于SharedPreferences是一个接口,而且在这个接口里没有提供写入数据和读取数据的能力。但它是通过其Editor接口中的一些方法来操作SharedPreference的,用法见下面代码:
Context.getSharedPreferences(String name,int mode)来得到一个SharedPreferences实例
name:是指文件名称,不需要加后缀.xml,系统会自动为我们添加上。
mode:是指定读写方式,其值有三种,分别为:
Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读、写
Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写
Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。
1.Mainactivity.class
package com.mr.tengyu.spdemo;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Toolbar tool;
private EditText usename;
private EditText psw;
private CheckBox cb;
private Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate ( savedInstanceState );
setContentView ( R.layout.activity_main );
initView ( );
}
private void initView() {
tool = (Toolbar) findViewById ( R.id.tool );
setSupportActionBar ( tool );
tool.setTitle ( "登录" );
usename = (EditText) findViewById ( R.id.usename );
psw = (EditText) findViewById ( R.id.psw );
cb = (CheckBox) findViewById ( R.id.cb );
bt = (Button) findViewById ( R.id.bt );
SharedPreferences sp = this.getSharedPreferences ( "use", MODE_PRIVATE );
if (sp.getBoolean ( "ISCHECK", false ) ){
String name = sp.getString ( "name", "" );
String pswa = sp.getString ( "psw", "" );
usename.setText ( name );
psw.setText ( pswa );
Intent intent = new Intent ( this, WebActivity.class );
startActivity ( intent );
}
bt.setOnClickListener ( this );
}
private void submit() {
// validate
String usenameString = usename.getText ( ).toString ( ).trim ( );
if (TextUtils.isEmpty ( usenameString )) {
Toast.makeText ( this, " 账号", Toast.LENGTH_SHORT ).show ( );
return;
}
String pswString = psw.getText ( ).toString ( ).trim ( );
if (TextUtils.isEmpty ( pswString )) {
Toast.makeText ( this, " 密码", Toast.LENGTH_SHORT ).show ( );
return;
}
SharedPreferences sp = getSharedPreferences ( "use", MODE_PRIVATE );
SharedPreferences.Editor edit = sp.edit ( );
if (cb.isChecked ()){
edit.putString ( "name",usenameString );
edit.putString ( "psw" ,pswString);
edit.putBoolean ( "ISCHECK",true );
edit.commit ();
}
// TODO validate success, do something
}
@Override
public void onClick(View v) {
switch (v.getId ( )) {
case R.id.bt:
submit();
Intent intent = new Intent ( this, WebActivity.class );
startActivity ( intent );
Toast.makeText ( this, "恭喜您登陆成功", Toast.LENGTH_SHORT ).show ( );
break;
}
}
}
2.layout_mian.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="58dp"
android:id="@+id/tool"
/>
<RelativeLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_margin="15dp"
android:layout_height="match_parent"
>
<EditText
android:layout_marginTop="80dp"
android:layout_width="match_parent"
android:layout_height="40dp"
android:hint=" 账号"
android:background="@drawable/yuanjiao"
android:id="@+id/usename"
/>
<EditText
android:layout_below="@id/usename"
android:layout_marginTop="40dp"
android:layout_width="match_parent"
android:layout_height="40dp"
android:hint=" 密码"
android:id="@+id/psw"
android:background="@drawable/yuanjiao"
/>
<CheckBox
android:id="@+id/cb"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/psw"
android:layout_marginTop="0dp"
android:text="记住密码" />
<LinearLayout
android:layout_below="@id/cb"
android:layout_width="match_parent"
android:gravity="center_horizontal"
android:layout_height="wrap_content">
<Button
android:id="@+id/bt"
android:layout_width="200dp"
android:layout_height="40dp"
android:layout_marginTop="37dp"
android:background="@drawable/yuanjiao"
android:hint="登录" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
2.Webactivity.class
package com.mr.tengyu.spdemo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
public class WebActivity extends AppCompatActivity {
private WebView web;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate ( savedInstanceState );
setContentView ( R.layout.activity_web );
initView ( );
}
private void initView() {
web = (WebView) findViewById ( R.id.web );
web.getSettings().setJavaScriptEnabled(true);
web.setWebChromeClient(new WebChromeClient ());
web.loadUrl("http://www.aa2626.com/");
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".WebActivity">
<WebView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/web"
/>
</LinearLayout>
5.yuanjiao.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<corners android:radius="2dp"/>
<stroke android:color="@color/colorAccent" android:width="1dp"/>
</shape>
6.清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mr.tengyu.spdemo">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/NoTheme">
<meta-data
android:name="com.google.android.actions"
android:resource="@xml/network_security_config" />
<activity android:name=".WebActivity" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>