android_ViewPager_实现导航页
android_ViewPager_实现导航页
既然是实现导航页的效果,那么我们肯定是要实现ViewPager的
要实现的效果如下
1.用户进入欢迎页面
2.判断是否是第一次进入,如果是,则进入导航页面,否则 则进入主界面
要实现这个功能
1.首先我们需要几个导航页的布局文件,用来显示导航的内容
2.需要Activity来启动导航页,欢迎页,主页
所有代码如下
1.导航页布局文件 a.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000" android:orientation="vertical" > </LinearLayout>
b.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="11111111111111111" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="进入欢迎界面" /> </LinearLayout>
欢迎界面的Activity
package com.example.leran_viewpager; import android.app.Activity; import android.app.backup.SharedPreferencesBackupHelper; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.os.Handler; import android.os.Message; public class weclomActivity extends Activity { private static boolean isFristIn=false; private final static int goHome=122; private final static int goFrist=2; private Handler handler=new Handler(){ public void handleMessage(Message msg) { switch(msg.what) { case goHome: GoToHome(); break; case goFrist: GoToDD(); break; } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.weclom); init(); } private void init() { SharedPreferences sp=getSharedPreferences("jsss",MODE_PRIVATE); isFristIn=sp.getBoolean("isFrist", true); if(isFristIn) { handler.sendEmptyMessageDelayed(goFrist, 2000); Editor ed=sp.edit(); ed.putBoolean("isFrist", false); ed.commit(); }else { handler.sendEmptyMessageDelayed(goHome, 2000); } } private void GoToHome() { startActivity(new Intent(this,ff.class)); finish(); } private void GoToDD() { startActivity(new Intent(this,MainActivity.class)); finish(); } }
自定义PagerAdapter
package com.example.leran_viewpager; import java.util.List; import android.content.Context; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.View; public class myAdapter extends PagerAdapter { private List<View> ArrayView=null; private Context cont=null; public myAdapter(List<View> ArrayView,Context cont) { this.ArrayView=ArrayView; this.cont=cont; } @Override public int getCount() { return ArrayView.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0==arg1; } @Override public void destroyItem(View container, int position, Object object) { ((ViewPager)container).removeView(ArrayView.get(position)); } @Override public Object instantiateItem(View container, int position) { ((ViewPager)container).addView(ArrayView.get(position)); return ArrayView.get(position); } }
引导页Activity
package com.example.leran_viewpager; 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.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; public class MainActivity extends Activity { private List<View> Tview=null; private ViewPager vp=null; private myAdapter ma=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Tview=new ArrayList<View>(); LayoutInflater ly= LayoutInflater.from(this); Tview.add(ly.inflate (R.layout.a, null)); Tview.add(ly.inflate(R.layout.b, null)); Tview.get(1).findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this,ff.class)); finish(); } }); ma=new myAdapter(Tview, this); vp=new ViewPager(this); vp.setAdapter(ma); setContentView(vp); } }
Hold on, everything is possible.