Android APP 引導頁實現-第一次應用進入時載入

來源:互聯網
上載者:User

標籤:android   activity   package   public   引導頁   

APP引導頁是每個優質APP必備的元素,下面我們研究一下如何只在第一次進入應用時進行載入引導頁的方法。

1.判斷是否第一次進入應用的方法:

package com.yayun.guide;  import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.Toast;  /** * 功能:使用ViewPager實現初次進入應用時的引導頁 *  * (1)判斷是否是首次載入應用--採取讀取SharedPreferences的方法 * (2)是,則進入引導activity;否,則進入MainActivity * (3)5s後執行(2)操作 *  * @author yayun * */public class SplashActivity extends Activity {      @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //setContentView(R.layout.activity_splash);                  boolean mFirst = isFirstEnter(SplashActivity.this,SplashActivity.this.getClass().getName());        Toast.makeText(this, mFirst+, Toast.LENGTH_SHORT).show();        if(mFirst)            mHandler.sendEmptyMessageDelayed(SWITCH_GUIDACTIVITY,100);        else            mHandler.sendEmptyMessageDelayed(SWITCH_MAINACTIVITY,100);        SharedPreferences sharedPreferences= this.getSharedPreferences(my_pref, MODE_PRIVATE);        sharedPreferences.edit().putString(guide_activity, false).commit();                      }             //****************************************************************    // 判斷應用是否初次載入,讀取SharedPreferences中的guide_activity欄位    //****************************************************************    private static final String SHAREDPREFERENCES_NAME = my_pref;    private static final String KEY_GUIDE_ACTIVITY = guide_activity;    private boolean isFirstEnter(Context context,String className){        if(context==null || className==null||.equalsIgnoreCase(className))return false;        String mResultStr = context.getSharedPreferences(SHAREDPREFERENCES_NAME, Context.MODE_WORLD_READABLE)                 .getString(KEY_GUIDE_ACTIVITY, );//取得所有類名 如 com.my.MainActivity        if(mResultStr.equalsIgnoreCase(false))            return false;        else            return true;    }                //*************************************************    // Handler:跳轉至不同頁面    //*************************************************    private final static int SWITCH_MAINACTIVITY = 1000;    private final static int SWITCH_GUIDACTIVITY = 1001;    public Handler mHandler = new Handler(){        public void handleMessage(Message msg) {            switch(msg.what){            case SWITCH_MAINACTIVITY:                Intent mIntent = new Intent();                mIntent.setClass(SplashActivity.this, Welcome.class);                SplashActivity.this.startActivity(mIntent);                SplashActivity.this.finish();                break;            case SWITCH_GUIDACTIVITY:                mIntent = new Intent();                mIntent.setClass(SplashActivity.this, GuideActivity.class);                SplashActivity.this.startActivity(mIntent);                SplashActivity.this.finish();                break;            }            super.handleMessage(msg);        }    };}

原理很簡單,進入的時候進行判斷有無存值,若無存值則表示第一次進入,這時跳入應用引導頁,否則,跳入首頁面。

 

2.ViewPager實現翻頁效果:

package com.yayun.guide; import java.util.ArrayList;import java.util.List; import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.Window;import android.widget.Button;import android.widget.LinearLayout; public class GuideActivity extends Activity implements OnClickListener{     private ViewPager mViewPager;    private PagerAdapter mAdapter;    private List<view> mViews = new ArrayList<view>();    // TAB     private LinearLayout mTabWeixin;    private LinearLayout mTabFrd;    private LinearLayout mTabAddress;    private LinearLayout mTabSetting;         private Button mEnterButton;                @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main);         initView();         initEvents();     }     private void initEvents()    {              mViewPager.setOnPageChangeListener(new OnPageChangeListener()        {             @Override            public void onPageSelected(int arg0)            {                              }             @Override            public void onPageScrolled(int arg0, float arg1, int arg2)            {             }             @Override            public void onPageScrollStateChanged(int arg0)            {             }        });    }     private void initView()    {        mViewPager = (ViewPager) findViewById(R.id.id_viewpager);              LayoutInflater mInflater = LayoutInflater.from(this);        View tab01 = mInflater.inflate(R.layout.tab01, null);        View tab02 = mInflater.inflate(R.layout.tab02, null);        View tab03 = mInflater.inflate(R.layout.tab03, null);        View tab04 = mInflater.inflate(R.layout.tab04, null);        mViews.add(tab01);        mViews.add(tab02);        mViews.add(tab03);        mViews.add(tab04);        mEnterButton=(Button)tab04.findViewById(R.id.imgbtn_enter);        mEnterButton.setOnClickListener(new OnClickListener() {                         @Override            public void onClick(View v) {                Intent intent=new Intent(GuideActivity.this,Welcome.class);                startActivity(intent);                             }        });         mAdapter = new PagerAdapter()        {             @Override            public void destroyItem(ViewGroup container, int position,                    Object object)            {                container.removeView(mViews.get(position));            }             @Override            public Object instantiateItem(ViewGroup container, int position)            {                View view = mViews.get(position);                container.addView(view);                return view;            }             @Override            public boolean isViewFromObject(View arg0, Object arg1)            {                return arg0 == arg1;            }             @Override            public int getCount()            {                return mViews.size();            }        };         mViewPager.setAdapter(mAdapter);     }     @Override    public void onClick(View v) {             }  }</view></view>

3.引導頁布局檔案:

<linearlayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">           </android.support.v4.view.viewpager>  </linearlayout>

下面運行一下代碼:

我們可以發現,第一次進入頁面的時候,Toast列印出true,表示應用第一次進入,這時載入引導頁。

退出應用,再一次進入時,Toast列印false,表示應用已經不是不是第一次進入了。這時我們的功能基本實現了。

本文出自 “沒有水勒魚” 部落格,請務必保留此出處http://javaqun.blog.51cto.com/10687700/1735378

Android APP 引導頁實現-第一次應用進入時載入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.