Android APP 引导页实现-第一次应用进入时加载
生活随笔
收集整理的這篇文章主要介紹了
Android APP 引导页实现-第一次应用进入时加载
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
APP引導(dǎo)頁是每個(gè)優(yōu)質(zhì)APP必備的元素,下面我們研究一下如何只在第一次進(jìn)入應(yīng)用時(shí)進(jìn)行加載引導(dǎo)頁的方法。
1.判斷是否第一次進(jìn)入應(yīng)用的方法:
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實(shí)現(xiàn)初次進(jìn)入應(yīng)用時(shí)的引導(dǎo)頁*?*?(1)判斷是否是首次加載應(yīng)用--采取讀取SharedPreferences的方法*?(2)是,則進(jìn)入引導(dǎo)activity;否,則進(jìn)入MainActivity*?(3)5s后執(zhí)行(2)操作*?*?@author?yayun**/ public?class?SplashActivity?extends?Activity?{@Overrideprotected?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);elsemHandler.sendEmptyMessageDelayed(SWITCH_MAINACTIVITY,100);SharedPreferences?sharedPreferences=?this.getSharedPreferences(my_pref,?MODE_PRIVATE);sharedPreferences.edit().putString(guide_activity,?false).commit();}???//****************************************************************//?判斷應(yīng)用是否初次加載,讀取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.MainActivityif(mResultStr.equalsIgnoreCase(false))return?false;elsereturn?true;}//*************************************************//?Handler:跳轉(zhuǎn)至不同頁面//*************************************************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);}}; }原理很簡單,進(jìn)入的時(shí)候進(jìn)行判斷有無存值,若無存值則表示第一次進(jìn)入,這時(shí)跳入應(yīng)用引導(dǎo)頁,否則,跳入主頁面。
?
2.ViewPager實(shí)現(xiàn)翻頁效果:
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>();//?TABprivate?LinearLayout?mTabWeixin;private?LinearLayout?mTabFrd;private?LinearLayout?mTabAddress;private?LinearLayout?mTabSetting;private?Button?mEnterButton;@Overrideprotected?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(){@Overridepublic?void?onPageSelected(int?arg0){}@Overridepublic?void?onPageScrolled(int?arg0,?float?arg1,?int?arg2){}@Overridepublic?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()?{@Overridepublic?void?onClick(View?v)?{Intent?intent=new?Intent(GuideActivity.this,Welcome.class);startActivity(intent);}});mAdapter?=?new?PagerAdapter(){@Overridepublic?void?destroyItem(ViewGroup?container,?int?position,Object?object){container.removeView(mViews.get(position));}@Overridepublic?Object?instantiateItem(ViewGroup?container,?int?position){View?view?=?mViews.get(position);container.addView(view);return?view;}@Overridepublic?boolean?isViewFromObject(View?arg0,?Object?arg1){return?arg0?==?arg1;}@Overridepublic?int?getCount(){return?mViews.size();}};mViewPager.setAdapter(mAdapter);}@Overridepublic?void?onClick(View?v)?{}} </view></view>3.引導(dǎo)頁布局文件:
<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>下面運(yùn)行一下代碼:
我們可以發(fā)現(xiàn),第一次進(jìn)入頁面的時(shí)候,Toast打印出true,表示應(yīng)用第一次進(jìn)入,這時(shí)加載引導(dǎo)頁。
退出應(yīng)用,再一次進(jìn)入時(shí),Toast打印false,表示應(yīng)用已經(jīng)不是不是第一次進(jìn)入了。這時(shí)我們的功能基本實(shí)現(xiàn)了。
轉(zhuǎn)載于:https://blog.51cto.com/javaqun/1735378
總結(jié)
以上是生活随笔為你收集整理的Android APP 引导页实现-第一次应用进入时加载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jscript.dll是什么
- 下一篇: Paket:一个面向.NET的包管理器