使用场景,打算设计一个“底部菜单栏+其余可滑动的页面”的简单的功能。

package com.lanyuweng.mibaby;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.CalendarView;
import android.widget.TextView; import com.lanyuweng.mibaby.fragment.FragmentAdapter; public class MainActivity extends FragmentActivity implements OnClickListener{ private static final String TAG = "MainActivity-----"; public static final int TAB_CALENDAR = 0;
public static final int TAB_REMINDER = 1;
public static final int TAB_NOTE = 2;
public static final int TAB_MORE = 3; private CalendarView calendarView; private ViewPager viewPager;
private TextView tvCalendar,tvReminder,tvNote,tvMore; //定义适配器
private FragmentAdapter adapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main); initView();
} private void initView() { Log.i(TAG,"initView----"); viewPager = (ViewPager)findViewById(R.id.viewpager);
tvCalendar = (TextView) findViewById(R.id.tvCalendar);
tvReminder = (TextView) findViewById(R.id.tvReminder);
tvNote = (TextView) findViewById(R.id.tvNote);
tvMore = (TextView) findViewById(R.id.tvMore); tvCalendar.setOnClickListener(this);
tvReminder.setOnClickListener(this);
tvNote.setOnClickListener(this);
tvMore.setOnClickListener(this); adapter = new FragmentAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
} @Override
public void onClick(View arg0) { switch (arg0.getId()) {
case R.id.tvCalendar:
viewPager.setCurrentItem(TAB_CALENDAR);
findViewById(R.id.tvConfig);
break; case R.id.tvMore:
viewPager.setCurrentItem(TAB_MORE);
break; case R.id.tvNote:
viewPager.setCurrentItem(TAB_NOTE);
break; case R.id.tvReminder:
viewPager.setCurrentItem(TAB_REMINDER);
break; default:
break;
}
} @Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
} }

通过两种方式来切换页面,左右滑动以及点击底部菜单栏。第二种方式是使用onClick()方法,第二种方式则是以继承FragmentPagerAdapter来控制Fragment的显示。

package com.lanyuweng.mibaby.fragment; 

import com.lanyuweng.mibaby.MainActivity;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter; public class FragmentAdapter extends FragmentPagerAdapter { public final static int TAB_COUNT = 4;
public FragmentAdapter(FragmentManager fm) {
super(fm);
} @Override
public Fragment getItem(int arg0) { switch (arg0) {
case MainActivity.TAB_CALENDAR:
CalendarFragment calendarFragment = new CalendarFragment();
return calendarFragment; case MainActivity.TAB_REMINDER:
ReminderFragment reminderFragment = new ReminderFragment();
return reminderFragment; case MainActivity.TAB_NOTE:
NoteFragment noteFragment = new NoteFragment();
return noteFragment;
case MainActivity.TAB_MORE:
MoreFragment moreFragment = new MoreFragment();
return moreFragment;
}
return null;
} @Override
public int getCount() {
// TODO Auto-generated method stub
return TAB_COUNT;
} }

同时,XML为:

<LinearLayout 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"
android:background="@drawable/background"
android:orientation="vertical" > <android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="9" /> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="55sp"
android:layout_weight="1"
android:background="@color/burlywood"
android:orientation="horizontal" > <TextView
android:id="@+id/tvCalendar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:drawableTop="@drawable/calendar" android:gravity="center"
android:text="@string/calendar"
android:textSize="12sp"
tools:ignore="NestedWeights" >
</TextView> <TextView
android:id="@+id/tvReminder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:drawableTop="@drawable/reminder"
android:gravity="center"
android:text="@string/reminder"
android:textSize="12sp" >
</TextView> <TextView
android:id="@+id/tvNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:drawableTop="@drawable/note"
android:gravity="center"
android:text="@string/note"
android:textSize="12sp" >
</TextView> <TextView
android:id="@+id/tvMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:drawableTop="@drawable/more"
android:gravity="center"
android:text="@string/more"
android:textSize="12sp" >
</TextView>
</LinearLayout> </LinearLayout>

记录一下fragmentactivity+viewpager+adapter的使用,以备后用

Android FragmentActivity+viewpager的使用的更多相关文章

  1. Android中ViewPager实现滑动条及与Fragment结合的实例教程

    ViewPager类主要被用来实现可滑动的视图功能,这里我们就来共同学习Android中ViewPager实现滑动条及与Fragment结合的实例教程,需要的朋友可以参考下 自主实现滑动指示条先上一个 ...

  2. Android中viewPager的一两点使用

    Android中viewPager的一两点使用 viewPager是谷歌官方提供的一种方便实现页面滑动效果的控件,可以直接使用也可以和fragment联合使用.这里只简单说下直接使用. 使用viewP ...

  3. Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...

  4. android之ViewPager

    在android中ViewPager是非常常用的控件.它在android.support.v4.view.ViewPager下.你们自己可以进http://developer.android.com/ ...

  5. Android listview viewpager解决冲突 滑动

    Android listview viewpager滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决   在listview 上使用 addHeaderView 在第 ...

  6. Android 使用ViewPager实现左右循环滑动图片

    ViewPager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图,用美女图片是我一贯的作风,呵呵 1.    首先看一 ...

  7. android使用ViewPager实现欢迎引导页

    android使用ViewPager实现欢迎引导页 大多数APP第一次启动的时候,都会有一个引导界面,左右滑动,到最后一张,用户点击才再次进入主界面.当第二次启动的时候,则直接进入主界面. 这种效果一 ...

  8. android下ViewPager的使用,带下部选项栏的切换动画

    (文章针对类似我这种初学者,大神看到不要嘲笑) 演示 我的规矩是先上GIF动画效果(Linux下用转的GIF,清晰度还可以但是不知道为什么放博客上,界面会这么大): 代码: android中有View ...

  9. Android FragmentActivity 嵌套 Fragment 调用startActivityForResult返回的requestCode错误

    Android FragmentActivity 嵌套 Fragment 调用startActivityForResult返回的requestCode错误 此时,要在调用startActivityFo ...

随机推荐

  1. [转]ubuntu server:开机自动登录

    原文链接: Ed29.com http://ed29.com/ubuntu%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%87%AA%E5%8A%A8%E7%99%BB%E5%BD%95 ...

  2. P1082 找朋友

    描述 童年的我们,对各种事物充满了好奇与向往.这天,小朋友们对数字产生了兴趣,并且想和数字交朋友.可是,怎么分配这些数字才能使得每个小朋友都唯一地找到一个数字朋友呢?C小朋友说:咱们按自己名字的字典序 ...

  3. 李洪强漫谈iOS开发[C语言-039]-剪刀石头布

     李洪强漫谈iOS开发[C语言-039]-剪刀石头布

  4. 【mongoDB基础篇①】安装与常用操作语句

    简述 mongoDB与redis同为noSql数据库,但是redis为kv数据库(key/value),而mongoDB为文档型数据库存储的是文档(Bson->json的二进制化).内部执行引擎 ...

  5. C编译过程概述

    转自:http://my.oschina.net/apeng/blog/105245 C 编译过程概述 目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection), ...

  6. iOS开发--网络下载

    这里使用的是NSURLConnection的代理请求下载,并且是具有进度,UI能实时刷新,至于NSURLConnection如何请求.并且有几种请求方法请看NSURLConnection请求简介,在这 ...

  7. python 利用pop3接收邮件并保存附件

    def SaveAttach():# login the pop3 server ,retrive the new mails ,and download the attachments dstdir ...

  8. 编译器的未来——我们还需要C++么?

    在未来我们还需要纯C++开发模式么? 随着C++11的诞生,C++已经越来越臃肿,从03的时候就觉得C++实在是太复杂了.以一个合格C++程序员的标准来简单的来说3-5年略有小成,5-8年才可以说自己 ...

  9. Android Service实时向Activity传递数据

    演示一个案例,需求如下:在Service组件中创建一个线程,该线程用来生产数值,每隔1秒数值自动加1,然后把更新后的数值在界面上实时显示. 步骤如下:1.新建一个android项目工程,取名为demo ...

  10. 转:[Android问答] 开发环境问题集锦

    工欲善其事,必先利其器. 和iOS开发相比,Android的开发环境的版本比较多,随之而来的问题也多.显然,我们不应该浪费宝贵的时间在解决开发环境带来的问题上,为此本文总结了常见的开发环境问题和解决方 ...