android ViewPager实现App主界面Tab菜单页面切换和点击事件

首先需要创建3个.xml文件,简单设置背景和一些简单组件,tab1.xml,tab2.xml,tab3.xml

之后是对activity_main.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="#EEEEEE"

android:orientation="vertical" 》

《LinearLayout

android:layout_width="wrap_content"

android:layout_height="0dp"

android:layout_weight="1"

android:orientation="vertical" 》

《android.support.v4.view.ViewPager

android:id="@+id/viewpage"

android:layout_width="match_parent"

android:layout_height="fill_parent" /》

《/LinearLayout》

《LinearLayout

android:id="@+id/linearLayout1"

android:layout_width="fill_parent"

android:layout_height="40.0dip"

android:background="#EEEEEE" 》

《!--设置最下端的标题提示  --》

《TextView

android:id="@+id/text1"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1.0"

android:gravity="center"

android:text="标题1"

android:textColor="#000000"

android:textSize="18.0dip" /》

《TextView

android:id="@+id/text2"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1.0"

android:gravity="center"

android:text="标题2"

android:textColor="#000000"

android:textSize="18.0dip" /》

《TextView

android:id="@+id/text3"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1.0"

android:gravity="center"

android:text="标题3"

android:textColor="#000000"

android:textSize="18.0dip" /》

《/LinearLayout》

《/LinearLayout》

最关键的activity_main.java的设置:

public class MainActivity extends Activity implements

OnClickListener {

Context context = null;

ViewPager pager = null;

TextView t1, t2, t3;

View view1, view2, view3;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

context = MainActivity.this;

initTextView();

initPagerViewer();

}

private void initTextView()

{

t1 = (TextView) findViewById(R.id.text1);

t2 = (TextView) findViewById(R.id.text2);

t3 = (TextView) findViewById(R.id.text3);

t1.setOnClickListener(this);

t2.setOnClickListener(this);

t3.setOnClickListener(this);

}

private void

initPagerViewer() {

pager = (ViewPager) findViewById(R.id.viewpage);

LayoutInflater li = LayoutInflater.from(this);

final ArrayList《View》 list = new ArrayList《View》();

view1 = li.inflate(R.layout.tab1, null);

view2 = li.inflate(R.layout.tab2, null);

view3 = li.inflate(R.layout.tab3, null);

list.add(view1);

list.add(view2);

list.add(view3);

pager.setAdapter(new MyPagerAdapter(list));

pager.setCurrentItem(0);

pager.setOnPageChangeListener(new MyOnPageChangeListener());

}

public class MyPagerAdapter

extends PagerAdapter {

List《View》 list = new ArrayList《View》();

public MyPagerAdapter(ArrayList《View》 list) {

this.list = list;

}

@Override

public void destroyItem(ViewGroup container, int position,

Object object) {// 销毁view

ViewPager pViewPager = ((ViewPager) container);

pViewPager.removeView(list.get(position));

}

@Override

public boolean isViewFromObject(View arg0, Object arg1) {

return arg0 == arg1;

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object instantiateItem(View arg0, int arg1) { //

初始化Item

// 通过位置arg1拿到view

ViewPager pViewPager = ((ViewPager) arg0);

pViewPager.addView(list.get(arg1));

return list.get(arg1);

}

}

public class MyOnPageChangeListener implements

OnPageChangeListener {

@Override

public void onPageSelected(int arg0) {//通过view 的位置来更改按钮的text

resert();

int currentItems = pager.getCurrentItem();

switch (currentItems) {

case 0:t1.setText("选中");break;

case 1:t2.setText("选中");break;

case 2:t3.setText("选中");break;

default:break;}}

@Override

public void onPageScrollStateChanged(int arg0) {}

@Override

public void onPageScrolled(int arg0, float arg1, int arg2)

{}}

@Override

public void onClick(View v) {

resert();

// TODO Auto-generated method stub

switch (v.getId()) {case

R.id.text1:

pager.setCurrentItem(0);t1.setText("选中");break;

case R.id.text2:pager.setCurrentItem(1);t2.setText("选中");break;

case R.id.text3:pager.setCurrentItem(2);t3.setText("选中");break;}}

//初始化按钮的选中情况

public void resert()

{t1.setText("标题1");t2.setText("标题2");t3.setText("标题3");}}

分页查询的实现:

​创建一个user类,包括3个属性,创建简单的连接数据库的类。创建接口userMag,并通过userMagImpl实现:

public List getUser (String s){

Connection ct = null;

Statement sm = null;

ResultSet rs = null;

List users = new ArrayList();

try{ct = DBOperator.getConnection();

sm =

ct.createStatement();

int pageNow = 1;

if (s != null) {

pageNow =

Integer.parseInt(s);

}

int pageSize = 3;//每页显示几条记录

rs = sm.executeQuery("select  *

from user  limit "+ ((pageNow -

1) * pageSize) +","+pageSize+"");

while (rs.next()) {

User u =

new User();

u.setUserid(rs.getString(1));

u.setPassword(rs.getString(2));

u.setUsername(rs.getString(3));

users.add(u);

}

}catch(Exception

ex){

ex.printStackTrace();

}finally{

DBOperator.close(rs, sm, ct);}

return users;

}

@Override

public int getPage(String s) {

Connection ct = null;

Statement sm = null;

ResultSet rs = null;

//查询总页数

int pageCount = 0;//当前为第几页

int pageSize = 3;//每页显示几条记录

int rowCount = 0;//总共有多少条记录

try{ct =

DBOperator.getConnection();

sm =

ct.createStatement();

rs = sm.executeQuery("select

count(*) from user");

if (rs.next()) {

rowCount = rs.getInt(1);

if (rowCount % pageSize == 0) {

pageCount =

rowCount / pageSize;

} else {

pageCount =

rowCount / pageSize + 1;}}}catch(Exception

ex)

{ex.printStackTrace();

}finally

{DBOperator.close(rs, sm,

ct);}

return pageCount;}

​关于jsp页面的设置:

​其中的TransServlet是为了实现跳转的功能:

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

doPost(request,response);

}

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

String id = request.getParameter("transpage");

if(id != null)

{

request.getRequestDispatcher("/index.jsp?pageNow="+id).forward(request,

response);

}

}

​​

android tab切换菜单内容分页,8月23号   Tab菜单页面切换和jsp分页查询相关推荐

  1. 绝地求生6月23号服务器维护到几点,绝地求生6月23号更新内容汇总 维护公告信息一览...

    绝地求生6月23号更新内容汇总,这一次的更新要等到什么时候,具体更新了哪些跟玩家有关的内容,想必很多玩家心里都有这样的疑问吧,而游戏这一次,还真的更新了你们期待已久的陈死狗cnh的定制皮肤,所以更新之 ...

  2. fgo1月23号服务器维护,FGO1月23号更新一览 1月23号更新内容详解

    fgo国服ipad版v1.8.5 [bilibili官方版] 类型:ios卡牌战棋大小:307M语言:中文 评分:10.0 标签: 立即下载 FGO1月23号更新一览,这次更新之后大家期待已久的梅林就 ...

  3. 2017年6月23号课堂笔记

    2017年6月23号 星期五 暴雨转阵雨 空气质量:良 内容: 01jQuery-Validate验证插件的使用:02bootstrap小例子: 03引用charisma代码小例子 一.jQuery- ...

  4. Java随笔(2017年10月23号~2018年4月7号)

    2017年10月23号 1.java:94年改名,95年推出 2.java特性:安全性.可移植性和平台无关性 3.java(jdk)中的bin目录中的.exe结尾的都是运行程序存放可执行文件: lib ...

  5. 2006年5月23号 12点

    2006年5月23号       12点 我做了个决定,决定从今天开始每天晚上23点搞网页设计,因为跟同学接了个业务做网站,自己水平不高,同学还可以,但有点懒-_-哈哈 昨天就我们专业同学还有老师开了 ...

  6. 2月23号的《艾薇儿广州演唱会》

    和Music Club一起去体验音乐现场 - 演唱会 Registration Deadline 2/18/2014 Activity Description HSC Music Club诚意邀请众音 ...

  7. 绝地求生6月23号服务器维护到几点,绝地求生6月23日更新到几点 绝地求生6月23日更新内容介绍...

    绝地求生6月23日更新到几点?绝地求生每周三都会进行更新,停服更新所需时间一般为5小时,不停服更新则无需等待.那么,明天的更新会在什么时候结束呢?下面就是绝地求生6月23日更新内容介绍了,一起来看看吧 ...

  8. 【下拉菜单】随前一个下拉菜单内容变化而变化的下拉菜单

    <body><form id="form1" runat="server" method="post"><!- ...

  9. html怎么做动态切换效果,使用CSS制作一个比较炫酷的页面切换动画

    今天我们想与大家分享一组创意的页面切换熊效果集合.我们已经在示例中罗列了一组动画,可以被应用到页面切换过程中,创造出很有趣的导航效果.虽然有些效果都非常简单,只是简单的滑动动作,但另外的一些则是利用了 ...

最新文章

  1. 微信小程序的tab选项卡的实现
  2. 设置Linux网络的方法
  3. TOJ5398: 签到大富翁(简单模拟) and TOJ 5395: 大于中值的边界元素(数组的应用)...
  4. Linux--文件结构体struct file
  5. 面试官 | 讲一下如何给高并发系统做限流?
  6. Esp8266物联网开发板详细使用教程
  7. python基础分析_python基础--函数全解析(1)
  8. python中面向对象的ui_怎样理解Python中的面向对象?
  9. php input 只接收文件内容,一文搞懂$_POST和file_get_contents(“php://input”)的区别
  10. java调用数据库存储过程的接口是_JAVA调用数据库存储过程
  11. 12个有趣的HTML5实例(转)
  12. 【下载】无线电杂志上下册合集2006-2011
  13. Vbs脚本编程简明教程
  14. 三维马氏距离_马氏距离2
  15. 运用Python——劳拉下棋_四连环游戏_重力四子棋游戏(代码与游戏判定)
  16. 剑指 Offer 42. 连续子数组的最大和java
  17. Dynamics AX 2009 Trainning
  18. python能做些什么事_一起来看看Python能干什么?使用Python能做哪些事
  19. 悟空CRM9从零开始搭建详细步骤——肯定成功
  20. 达梦数据库导入dmp文件

热门文章

  1. 验票证明怎么打印_OFD电子发票如何查验、打开、打印?如何电子归档?
  2. 使用IO流对文件进行编写功能
  3. 【历史】- 一段关于 Unix、Linux 和 Windows 的暗黑史
  4. 【电子科学系保研】-- 南方科技大学保研之旅
  5. 0301 、Web服务器简介、虚拟Web主机、NFS服务基础、触发挂载
  6. ActiveSync 3.7
  7. 会声会影2022正式版一键式视频剪辑软件
  8. 简述CMM与CMMI的关系
  9. android自动清理内存不足,安卓手机内存不足怎么清理?手机内存不足清理方法...
  10. InfoQ网站作者的文章列表文章详情获取-Java网络爬虫系统性学习与实战系列(13)