當使用者從應用程式市場下載下傳App後,第一次安裝的時候總要給使用者做引導提示,主要是判斷是不是第一次下載下傳就可以了
大緻的思路如下:
一、在引導頁面的Activity中放置viepager和radiogroup控件
GuideActivity的布局檔案
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.fch.android.guide.GuideActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/transparent" />
<RadioGroup
android:id="@+id/advertise_point_group"
android:layout_width="fill_parent"
android:layout_height="35dip"
android:layout_alignParentBottom="true"
android:gravity="center"
android:orientation="horizontal"
android:visibility="visible" >
<RadioButton
android:id="@+id/dot01"
style="@style/dot_style"
android:checked="true" />
<RadioButton
android:id="@+id/dot02"
style="@style/dot_style"
android:layout_marginLeft="10dip"
android:checked="false" />
<RadioButton
android:id="@+id/dot03"
style="@style/dot_style"
android:layout_marginLeft="10dip"
android:checked="false" />
<RadioButton
android:id="@+id/dot04"
style="@style/dot_style"
android:layout_marginLeft="10dip"
android:checked="false" />
</RadioGroup>
</RelativeLayout>
二、GuideActivity的實作邏輯,初始化控件,為viewpager填充資料擴充卡
public class GuideActivity extends FragmentActivity {
private ViewPager viewPage;
private Fragment1 mFragment1;
private Fragment2 mFragment2;
private Fragment3 mFragment3;
private Fragment4 mFragment4;
private PagerAdapter mPgAdapter;
private RadioGroup dotLayout;
private List<Fragment> mListFragment = new ArrayList<Fragment>();
private boolean isFirst= false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_guide);
SharedPreferences sp= getSharedPreferences("FirstLaunch",MODE_PRIVATE);
isFirst=sp.getBoolean("FirstValue",true);//第一次擷取不到值,取預設值true
if(isFirst){
}else{
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}
initView();
viewPage.setOnPageChangeListener(new MyPagerChangeListener());
}
private void initView() {
dotLayout = (RadioGroup) findViewById(R.id.advertise_point_group);
viewPage = (ViewPager) findViewById(R.id.viewpager);
mFragment1 = new Fragment1();
mFragment2 = new Fragment2();
mFragment3 = new Fragment3();
mFragment4 = new Fragment4();
mListFragment.add(mFragment1);
mListFragment.add(mFragment2);
mListFragment.add(mFragment3);
mListFragment.add(mFragment4);
mPgAdapter = new ViewPagerAdapter(getSupportFragmentManager(),
mListFragment);
viewPage.setAdapter(mPgAdapter);
}
public class MyPagerChangeListener implements OnPageChangeListener {
public void onPageSelected(int position) {
}
public void onPageScrollStateChanged(int arg0) {
}
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
((RadioButton) dotLayout.getChildAt(position)).setChecked(true);
}
}
}
三、擴充卡
public class ViewPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList = new ArrayList<Fragment>();
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
public ViewPagerAdapter(FragmentManager fragmentManager,
List<Fragment> arrayList) {
super(fragmentManager);
this.fragmentList = arrayList;
}
@Override
public Fragment getItem(int arg0) {
return fragmentList.get(arg0);
}
@Override
public int getCount() {
return fragmentList.size();
}
}
四、擴充卡隻要重寫兩個方法就可以了
Fragment中的代碼
public class Fragment1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.fragment_1, container, false);
}
五、最主要的是要更改MainActivity中的值,把true改為false,下次判斷直接進入MainActivity
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
SharedPreferences sp= getSharedPreferences("FirstLaunch",MODE_PRIVATE);
sp.edit().putBoolean("FirstValue",false).commit(); //修改存儲的boolean值
}
}
最後貼上源碼下載下傳位址 :http://download.csdn.net/detail/szq0792/9593755
點選打開連結