ViewPager里实现监听和MyFragmentStatePagerAdapter适配器和MyFragmentPagerAdapter适配器

ViewPager里实现监听ViewPager.OnPageChangeListener

MainActivity

  1 package viewpagedemo.example.administrator.viewpagedemo;
  2
  3 import android.graphics.Color;
  4 import android.os.Bundle;
  5 import android.support.v4.app.Fragment;
  6 import android.support.v4.app.FragmentActivity;
  7 import android.support.v4.view.PagerTabStrip;
  8 import android.support.v4.view.ViewPager;
  9 import android.view.View;
 10 import android.widget.Toast;
 11
 12 import java.util.ArrayList;
 13 import java.util.List;
 14 /*ViewPager实现(界面)导航,eg视图滑动
 15 加入ViewPager
 16 <android.support.v4.view.ViewPager
 17 android:id="@+id/pager"
 18 android:layout_width="match_parent"
 19 android:layout_height="match_parent"
 20 android:layout_gravity="center">
 21 </android.support.v4.view.ViewPager>
 22
 23 加载显示的页卡
 24 将Layout布局转换为View对象
 25 1/ LayoutInflater if=getLayoutInflater().from(this);
 26 if.inflate(resource,root);
 27 2/ view.inflate(context,resource,root);
 28
 29 ViewPager可以看成容器可以装view对象或者Fragment对象
 30
 31 配置适配器Adapter
 32 1/PagerAdapter 数据源:List<View>
 33 2/FragmentPagerAdapter 数据源: List<Fragment>
 34 3/FragmentStatePagerAdapter 数据源: List<Fragment>*/
 35 public class MainActivity extends FragmentActivity implements ViewPager.OnPageChangeListener{
 36     private PagerTabStrip tabStrip;
 37     private List<Fragment> fragmentList;
 38     private List<View>viewList;
 39     private ViewPager viewPager;
 40
 41     private List<String> titleList;
 42     private PagerTabStrip pagerTabStrip;
 43     @Override
 44     protected void onCreate(Bundle savedInstanceState) {
 45         super.onCreate(savedInstanceState);
 46         setContentView(R.layout.main);
 47         /*通过View对象建立ViewPager的数据源*/
 48         viewList=new ArrayList<View>();
 49         View view1 = View.inflate(this, R.layout.view1, null);
 50         View view2 = View.inflate(this, R.layout.view2, null);
 51         View view3 = View.inflate(this, R.layout.view3, null);
 52         View view4 = View.inflate(this, R.layout.view4, null);
 53         viewList.add(view1);
 54         viewList.add(view2);
 55         viewList.add(view3);
 56         viewList.add(view4);
 57         /*通过Fragment作为ViewPager的数据源*/
 58         fragmentList=new ArrayList<Fragment>();
 59
 60         fragmentList.add(new Fragment1());
 61         fragmentList.add(new Fragment2());
 62         fragmentList.add(new Fragment3());
 63         fragmentList.add(new Fragment4());
 64         titleList=new ArrayList<String>();
 65         titleList.add("第一页");
 66         titleList.add("第二页");
 67         titleList.add("第三页");
 68         titleList.add("第四页");
 69          tabStrip= (PagerTabStrip) findViewById(R.id.paperTab);
 70         tabStrip.setBackgroundColor(Color.RED);/*设置背景颜色*/
 71         tabStrip.setTextColor(Color.YELLOW);/*设置文本颜色*/
 72         tabStrip.setDrawFullUnderline(false);/*去掉长线*/
 73         tabStrip.setTabIndicatorColor(Color.GREEN);/*设置短线颜色*/
 74 //        初始化viewPager
 75         viewPager= (ViewPager) findViewById(R.id.viewPager);
 76 //        创建PagerAdapter的适配器
 77         MyPagerAdapt adapt = new MyPagerAdapt(viewList,titleList);
 78 //        ViewPager加载适配器
 79 //        viewPager.setAdapter(adapt);
 80 //        MyFragmentPagerAdapter myFragmentPagerAdapter=new MyFragmentPagerAdapter(getSupportFragmentManager(),fragmentList,titleList);/*support v4中通过getSupportFragmentManager()获取管理者,前提是要把继承Activity改为继承FragmentActivity,*/
 81 //        viewPager.setAdapter(myFragmentPagerAdapter);
 82         MyFragmentStatePagerAdapter myFragmentPagerAdapter1=new MyFragmentStatePagerAdapter(getSupportFragmentManager(),fragmentList,titleList);
 83         viewPager.setAdapter(myFragmentPagerAdapter1);
 84         viewPager.setOnPageChangeListener(this);
 85     }
 86
 87     @Override
 88     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
 89
 90     }
 91
 92     @Override
 93     public void onPageSelected(int position) {/*常用的方法*/
 94         Toast.makeText(this,"第几个页面"+position,Toast.LENGTH_SHORT).show();
 95     }
 96
 97     @Override
 98     public void onPageScrollStateChanged(int state) {
 99
100     }
101 }

MyFragmentStatePagerAdapter

 1 package viewpagedemo.example.administrator.viewpagedemo;
 2
 3 import android.support.v4.app.Fragment;
 4 import android.support.v4.app.FragmentManager;
 5 import android.support.v4.app.FragmentPagerAdapter;
 6 import android.support.v4.app.FragmentStatePagerAdapter;
 7 import android.util.Log;
 8 import android.view.View;
 9 import android.view.ViewGroup;
10
11 import java.util.List;
12
13 /**
14  * Created by Administrator on 2016/5/8.
15  */
16 public class MyFragmentStatePagerAdapter extends FragmentStatePagerAdapter{
17     private List<Fragment>fragmentList;
18     private List<String>titleList;
19     public MyFragmentStatePagerAdapter(FragmentManager fm, List<Fragment>fragmentList, List<String>titleList) {
20         super(fm);
21      this.fragmentList=fragmentList;
22         this.titleList=titleList;
23     }
24
25     @Override
26     public Fragment getItem(int position) {
27         return fragmentList.get(position);
28     }
29
30     @Override
31     public int getCount() {
32         return fragmentList.size();
33     }
34
35     @Override
36     public CharSequence getPageTitle(int position) {
37         return titleList.get(position);
38     }
39
40
41     @Override
42     public Object instantiateItem(ViewGroup container, int position) {
43         return super.instantiateItem(container, position);
44     }
45
46     @Override
47     public void destroyItem(ViewGroup container, int position, Object object) {
48         super.destroyItem(container, position, object);
49         Log.i("nihao","nihao");
50     }
51 }

MyFragPagerAdapter

 1 package viewpagedemo.example.administrator.viewpagedemo;
 2
 3 import android.support.v4.app.Fragment;
 4 import android.support.v4.app.FragmentManager;
 5 import android.support.v4.app.FragmentPagerAdapter;
 6
 7 import java.util.List;
 8
 9 /**
10  * Created by Administrator on 2016/5/8.
11  */
12 public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
13     private List<Fragment>fragmentList;
14     private List<String>titleList;
15     public MyFragmentPagerAdapter(FragmentManager fm,List<Fragment>fragmentList,List<String>titleList) {
16         super(fm);
17      this.fragmentList=fragmentList;
18         this.titleList=titleList;
19     }
20
21     @Override
22     public Fragment getItem(int position) {
23         return fragmentList.get(position);
24     }
25
26     @Override
27     public int getCount() {
28         return fragmentList.size();
29     }
30
31     @Override
32     public CharSequence getPageTitle(int position) {
33         return titleList.get(position);
34     }
35 }
时间: 2024-10-14 13:58:19

ViewPager里实现监听和MyFragmentStatePagerAdapter适配器和MyFragmentPagerAdapter适配器的相关文章

Android 小问题整理1 ViewPagerIndicator和ViewPager的滑动监听

2015-10-30 今天使用ViewPagerIndicator时遇到个小问题,使用ViewPagerIndicator和ViewPager关联之后,再对ViewPager的滑动事件进行监听viewpager.setOnPageChangeListener(),然后监听失效了. 1 mViewPager.setAdapter(new MyAdapter()); 2 mIndicator.setViewPager(mViewPager);//关联ViewpagerIndicator和ViewPa

TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误

一.环境描述: OS : Windows Server 2008 32BitDB : 11.2.0 二.排错过程: 前天应用不能访问数据库了 (后台应用能访问数据库),故障发生.马上登录到服务器里查看监听状态,发现有TNS-12541 ,TNS-12560等错误 手动把监听服务启动,这时候服务状态上显示为已启动,但在CMD窗口执行lsnrctl status的时候依然返回错误信息: C:\>lsnrctl status LSNRCTL for 32-bit Windows: Version 11

Angularjs【监听数据的变化】和【如何修改数据】和【数据变化的传播】

一:监听数据的变化: 由于编译仅仅在启动引导时执行一次,这意味着我们的link函数只会被调用一次,那么, 如果数据变化,在界面上将不会有任何反馈,即界面和数据将变得不同步了. 这需要持续监听数据的变化. 好在AngularJS的scope对象可以使用$watch()方法,对建立在其上的变量的变化进行监听: watch(watchExpression,listener,[objectEquality]);watch方法要求传入三个参数: watchExpression - 要监听的表达式,比如:"

Android 监听 Android中监听系统网络连接打开或者关闭的实现代码

本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.content.BroadcastReceiver;  import android.content.Context;  import android.content.Intent;  import android.net.ConnectivityManager;  import android.ne

对Android 软键盘向下的监听

因为业务需要,有时候我们好监听软键盘向下的动作,当我们按下向下的按钮时,可以进行监听,从而执行相应的动作. 于是我们写下下面的代码 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK){ Log.i(TAG, "onKeyDown"); } return super.onKeyDown(keyCode, event); } 我们按下向

html学习 - jquery事件监听详解

html学习 - jquery事件监听详解 html学习 - jquery事件监听详解 监听方法 监听方法参数解释 click参数 事件自动执行问题解决 bind方法 live方法 监听方法 在jquery里,监听的方法比较多,用的最多的就是简单的.click() .onchange() .pressdown() 所以这样很简单啊,直接使用就好了,只要符合参数规范就可以了.除了这个还有bind() live() 方法. 而addEventListener()同bind()方法是没有很大功能上的区

Oracle 添加第二个实例 和 监听

1.添加第二个实例 配置和移植工具 -->Database Configuration Assistant 然后一步一步创建实例(实例名为ORCL2) 创建成功后会在系统的服务里面有个服务名称为 OracleServiceORCL2 的服务 2添加监听 (1)在原有的1521端口监听上添加ORCL2监听 配置和移植工具 -->Net Manager 确保orcl2的端口号为1521 在1521端口监听上添加orcl2的数据库 (2)添加另一个端口监听ORCL2 配置和移植工具 -->Ne

Android开发之监听或获取手机短信内容【转】

最近做的项目里要监听手机的短消息内容,这个东西好像在最初学的时候都做过,不过现在早忘记了,现在写下来,记住了. 前提--权限: <uses-permission android:name="android.permission.RECEIVE_SMS" > </uses-permission> <uses-permission android:name="android.permission.READ_SMS" > </us

tomcat 服务器的几个重要监听 方法 与 使用

1. 总结一下tomcat 服务器里的三种监听 ServletContextListener HttpSessionListener ServletRequestListener 这是我要做的三个自定义重写 类 分别继承上面三个接口 2具体源码 (1) ServletContextListener 用于监听服务器的启动与关闭 1 package cn.cen2guo.clinic.listener; 2 3 4 import javax.servlet.ServletContextEvent;