Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android開發-數據存儲Ⅰ,android數據存儲

android開發-數據存儲Ⅰ,android數據存儲

編輯:關於android開發

android開發-數據存儲Ⅰ,android數據存儲


本章講述在Android開發中,簡單的數據存儲。涉及知識主要是SharedPreferences,及多頁面切換ViewPager。

1.功能需求

做一個小應用、啟動的時候有左右引導圖、只有第一次啟動時顯示,看完以後,下一次啟動就不會再顯示了。

  • 做兩個Activity展示引導,引導後進入主界面
  • 點擊跳轉下一頁,主界面內容不限
  • 第二次啟動時不再顯示引導界面,直接跳轉應用主界面

2.軟件實現

                   圖1

                     圖2

                  圖3

簡要說明:運行軟件,進入圖1界面,若第一次使用,軟件在運行2秒後,自動跳轉到引導界面。通過滑動屏幕,可跳轉到不同的引導界面。點擊進入主頁時,記錄引導界面是否被顯示的狀態值,若不清空值時,下一次不會在出現引導界面。

3.相關知識

(1)sharedPreferences

sharedPreferences是數據持久化,就是把簡單類型的數據(如:String,int)存儲起來。對應復雜類型數據,一般是將數據轉換成Base64編碼,然後將轉換後的數據以字符串的形式保存在 XML文件中,再用SharedPreferences保存。

SharedPreferences使用方法:

  •  使用Activity類的getSharedPreferences方法獲得SharedPreferences對象,其中存儲key-value的文件的名稱由getSharedPreferences方法的第一個參數指定;
  • 使用SharedPreferences接口的edit獲得SharedPreferences.Editor對象;
  • 通過SharedPreferences.Editor接口的putXxx方法保存key-value對。其中Xxx表示不同的數據類型。例如:字符串類型的value需要用putString方法;
  • 通過SharedPreferences.Editor接口的commit方法保存key-value對。commit方法相當於數據庫事務中的提交(commit)操作。

本例中存儲是否顯示引導頁面的案例代碼如下:

public class SessionData {
    public static final int VERSION = 1;        //1 不啟動緩存
    public static SharedPreferences sp_version;   //保存
}

// 存入數據並提交
SessionData.sp_version.edit() .putInt("VERSION", SessionData.VERSION).commit();

// 讀取SharedPreferences中需要的數據
SessionData. sp_version = getSharedPreferences("Y_Setting", Context.MODE_PRIVATE);

int version=SessionData.sp_version.getInt("VERSION", 0);

(2)ViewPager

android-support-v4.jar 是谷歌官方給我們提供的一個兼容低版本安卓設備的軟件包,裡面包囊了只有在安卓3.0以上可以使用 的api。而viewpager就是其中之一利用它,我們可以做很多事情,從最簡單的導航,到頁面菜單等等。那如何使用它呢,與ListView類似,我 們也需要一個適配器,他就是PagerAdapter。ViewPager類提供了多界面切換的新效果,新效果有如下特征:

  • 當前顯示一組界面中的其中一個界面;
  • 當用戶通過左右滑動界面時,當前的屏幕顯示當前界面和下一個界面的一部分;
  • 滑動結束後,界面自動跳轉到當前選擇的界面中。

ViewPager在本例中使用的代碼如下:

1 package www.csnt.com.geekbandfivehomework; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.support.v4.view.ViewPager; 7 import android.support.v4.view.ViewPager.OnPageChangeListener; 8 import android.view.LayoutInflater; 9 import android.view.View; 10 import android.view.View.OnClickListener; 11 import android.widget.Button; 12 13 import java.util.ArrayList; 14 15 public class GuideActivity extends Activity implements OnPageChangeListener { 16 // 定義ViewPager對象 17 private ViewPager viewPager; 18 // 定義一個ArrayList來存放View 19 private ArrayList<View> views; 20 // 定義各個界面View對象 21 private View view1, view2, view3, view4; 22 // 定義開始按鈕對象 23 private Button btnStart; 24 25 @Override 26 protected void onCreate(Bundle savedInstanceState) { 27 super.onCreate(savedInstanceState); 28 setContentView(R.layout.activity_guide); 29 initView(); 30 31 } 32 33 /** 34 * 初始化 35 */ 36 private void initView() { 37 // 實例化ViewPager 38 viewPager = (ViewPager) findViewById(R.id.viewpager); 39 40 // 實例化各個界面的布局對象 41 LayoutInflater mLi = LayoutInflater.from(this); 42 view1 = mLi.inflate(R.layout.guide_view1, null); 43 view2 = mLi.inflate(R.layout.guide_view2, null); 44 view3 = mLi.inflate(R.layout.guide_view3, null); 45 46 47 // 實例化ArrayList對象 48 views = new ArrayList<View>(); 49 // 將要分頁顯示的View裝入數組中 50 views.add(view1); 51 views.add(view2); 52 views.add(view3); 53 54 // 設置監聽 55 viewPager.setOnPageChangeListener(this); 56 // 設置適配器數據 57 viewPager.setAdapter(new ViewPagerAdapter(views)); 58 59 // 實例化開始按鈕 60 btnStart = (Button) view3.findViewById(R.id.startBtn); 61 // 給開始按鈕設置監聽 62 btnStart.setOnClickListener(new OnClickListener() { 63 @Override 64 public void onClick(View v) { 65 // 存入數據並提交 66 SessionData.sp_version.edit() 67 .putInt("VERSION", SessionData.VERSION).commit(); 68 startActivity(new Intent(GuideActivity.this, MainActivity.class)); 69 finish(); 70 } 71 72 }); 73 } 74 75 /** 76 * 滑動狀態改變時調用 77 */ 78 @Override 79 public void onPageScrollStateChanged(int arg0) { 80 81 } 82 83 /** 84 * 當前頁面滑動時調用 85 */ 86 @Override 87 public void onPageScrolled(int arg0, float arg1, int arg2) { 88 89 } 90 91 /** 92 * 新的頁面被選中時調用 93 */ 94 @Override 95 public void onPageSelected(int arg0) { 96 } 97 98 } ViewPager

其中:view3 = mLi.inflate(R.layout.guide_view3, null);表示其中一個界面加載到項目中。對於該界面中的其他控件,可通過如下方式使用:

      // 實例化開始按鈕
        btnStart = (Button) view3.findViewById(R.id.startBtn);
        // 給開始按鈕設置監聽
        btnStart.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // 存入數據並提交
                SessionData.sp_version.edit()
                        .putInt("VERSION", SessionData.VERSION).commit();
                startActivity(new Intent(GuideActivity.this, MainActivity.class));
                finish();
            }
        });

4.項目源代碼下載

本項目源代碼在360雲盤上,開發環境為 Android Studio 2.0 beta 7。

https://yunpan.cn/cYamkZG3sq9jf  訪問密碼 f3d5。文件名稱:android引導界面demo。

 

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved