第八课讲义

一、SharedPreferences存储数据的使用方法

SharedPreferences是一种轻型的Android数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。比较经典的使用方式例如用户输入框对过往登录账户的存储。

实现SharedPreferences存储的步骤

  1. 根据Context获取SharedPreferences对象
  2. 利用edit()方法获取Editor对象。
  3. 通过Editor对象存储key-value键值对数据。
  4. 通过commit()方法提交数据。

1、SharedPreferences保存数据的方法

    private void saveSampleValue() {
            //第一步:实例化SharedPreferences对象
            SharedPreferences mySharedPreferences = getSharedPreferences("fangshuo",
                    Activity.MODE_PRIVATE);
            //第二步:实例化SharedPreferences.Editor对象
            SharedPreferences.Editor editor = mySharedPreferences.edit();
            //用putString的方法保存数据
            editor.putString("name", "zhou");
            editor.putInt("age", 18);
            //第三步:提交当前保存数据
            editor.commit();
        }

2、SharedPreferences获取已存储数据的方法

    private void getSampleValue() {
            //在读取SharedPreferences数据前要实例化出一个SharedPreferences对象
            SharedPreferences sharedPreferences = getSharedPreferences("fangshuo",
                    Activity.MODE_PRIVATE);
            //使用getString方法获得value,注意第2个参数是value的默认值。
            String name = sharedPreferences.getString("name", "匿名");
            Integer age = sharedPreferences.getInt("age", 20);//默认20岁
            //使用toast信息提示框显示信息
            Toast.makeText(this, "读取数据如下:" + "\n" + "name:" + name + "\n" + "age:" + age,
                    Toast.LENGTH_LONG).show();
        }

3、SharedPreferences清除已存储数据的方法

    private void delSampleValue() {
            //在清除SharedPreferences数据前要实例化出一个SharedPreferences对象
            SharedPreferences sharedPreferences = getSharedPreferences("fangshuo",
                    Activity.MODE_PRIVATE);
            //第二步:实例化SharedPreferences.Editor对象
            SharedPreferences.Editor editor = sharedPreferences.edit();
            //用remove的方法清楚数据
            editor.remove("name");
            editor.remove("age");
            //第三步:提交修改数据
            editor.commit();
        }

二、 WebView网络视图的基本用法

WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页。

第一种使用方法步骤

  1. 在要Activity中实例化WebView组件:WebView webView = new WebView(this);
  2. 调用WebView的loadUrl()方法,设置WevView要显示的网页, 互联网用:webView.loadUrl("http://www.google.com"); 本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中。
  3. 调用Activity的setContentView( )方法来显示网页视图。
  4. 用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面。
  5. 需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。
    package com.android.webview.activity;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.webkit.WebView;

    public class MainActivity extends Activity {
        private WebView webview;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //实例化WebView对象
            webview = new WebView(this);
            //设置WebView属性,能够执行Javascript脚本
            webview.getSettings().setJavaScriptEnabled(true);
            //加载需要显示的网页
            webview.loadUrl("http://www.51cto.com/");
            //设置Web视图
            setContentView(webview);
        }

        @Override
        //设置回退
        //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
                webview.goBack(); //goBack()表示返回WebView的上一页面
                return true;
            }
            return false;
    }

第二种使用方法步骤

  1. 在布局文件中声明WebView。
  2. 在Activity中实例化WebView。
  3. 调用WebView的loadUrl()方法,设置WevView要显示的网页。
  4. 为了让WebView能够响应超链接功能,调用setWebViewClient()方法,设置WebView视图。
  5. 用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面。
  6. 需要在AndroidManifest.xml文件中添加权限,否则出现Web page not available错误。
    package com.android.webview.activity;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;

    public class MainActivity extends Activity {
        private WebView webview;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            webview = (WebView) findViewById(R.id.webview);
            //设置WebView属性,能够执行Javascript脚本
            webview.getSettings().setJavaScriptEnabled(true);
            //加载需要显示的网页
            webview.loadUrl("http://www.51cto.com/");
            //设置Web视图
            webview.setWebViewClient(new HelloWebViewClient ());
        }

        @Override
        //设置回退
        //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
                webview.goBack(); //goBack()表示返回WebView的上一页面
                return true;
            }
            return false;
        }

        //Web视图
        private class HelloWebViewClient extends WebViewClient {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        }
    }

results matching ""

    No results matching ""