android项目智慧北京开发完整步骤:第一天

Posted 梁俊俊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android项目智慧北京开发完整步骤:第一天相关的知识,希望对你有一定的参考价值。

去掉标题,全屏

技术分享

动画

rlRoot= (RelativeLayout)findViewById(R.id.rl_root);

RotateAnimation animRotate=newRotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

animRotate.setDuration(1000);

animRotate.setFillAfter(true);//保持状体

ScaleAnimation animScale=newScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

animScale.setDuration(1000);

animScale.setFillAfter(true);

AlphaAnimation animAlpha=newAlphaAnimation(0, 1);

animAlpha.setDuration(1000);

animAlpha.setFillAfter(true);

AnimationSet animSet=newAnimationSet(true);

animSet.addAnimation(animRotate);

animSet.addAnimation(animAlpha);

animSet.addAnimation(animScale);

rlRoot.startAnimation(animSet);

animSet.setAnimationListener(newAnimationListener() {

@Override

publicvoidonAnimationStart(Animation animation) {

}

@Override

publicvoidonAnimationRepeat(Animation animation) {

}

@Override

publicvoidonAnimationEnd(Animation animation) {

startActivity(newIntent(getApplicationContext(), MainActivity.class));

finish();

}

});

库文件

技术分享

打包不需要管库文件,自动打到项目里

引导页(ViewPage)

xml文件

技术分享

拷贝全路径

技术分享

技术分享

技术分享

关联viewPage源码

技术分享

先remove

技术分享

Addjar

技术分享

勾上

技术分享

技术分享

源码路径

E:\adt-bundle-windows-x86\sdk\extras\android\support\v4

java代码

privateint[]mImageIds=newint[]{R.drawable.guide_1,R.drawable.guide_2,R.drawable.guide_3};

privateViewPagermViewPage;

privateArrayListmImageViewList;

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

//TODOAuto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_guide);

mViewPage= (ViewPager) findViewById(R.id.vp_pager);

mViewPage.setAdapter(newMyAdapter());

mImageViewList=newArrayList();

for(inti = 0; i 

ImageView view=newImageView(this);

view.setBackgroundResource(mImageIds[i]);

mImageViewList.add(view);

}

}

classMyAdapterextendsPagerAdapter{

@Override

publicintgetCount() {

returnmImageIds.length;

}

@Override

publicbooleanisViewFromObject(View view, Object object) {

returnview==object;

}

@Override

publicObject instantiateItem(ViewGroup container,intposition) {

//ImageView view=new ImageView(getApplicationContext());

//view.setBackgroundResource(mImageIds[position]);

ImageView view=mImageViewList.get(position);

container.addView(view);

returnview;

}

@Override

publicvoiddestroyItem(ViewGroup container,intposition, Object object) {

container.removeView((View)object);

}

}

加点,加按钮

java代码

privateViewPagermViewPage;

privateLinearLayoutllContainer;

privateImageViewivRedPoint;

privateButtonbtStart;

privateint[]mImageIds=newint[]{R.drawable.guide_1,R.drawable.guide_2,R.drawable.guide_3};

privateArrayListmImageViewList;

privateintmPointWith;//两个小圆点的宽度

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

//TODOAuto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_guide);

mViewPage= (ViewPager) findViewById(R.id.vp_pager);

llContainer=(LinearLayout)findViewById(R.id.ll_container);

ivRedPoint=(ImageView)findViewById(R.id.iv_red_point);

btStart=(Button)findViewById(R.id.bt_start);

btStart.setOnClickListener(this);

mImageViewList=newArrayList();

for(inti = 0; i 

ImageView view=newImageView(this);

view.setBackgroundResource(mImageIds[i]);

mImageViewList.add(view);

ImageView pointView=newImageView(this);

pointView.setImageResource(R.drawable.shape_circle_default);

LinearLayout.LayoutParams params=newLinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);

if(i>0){

params.leftMargin=10;//从第二个点开始设置边距

}

pointView.setLayoutParams(params);

llContainer.addView(pointView);

}

mViewPage.setAdapter(newMyAdapter());

//页面绘制结束后,计算两个圆点的距离

ivRedPoint.getViewTreeObserver().addOnGlobalLayoutListener(newOnGlobalLayoutListener() {

//layout方法执行结束之后(位置确定)

@Override

publicvoidonGlobalLayout() {

//移除监听

ivRedPoint.getViewTreeObserver().removeGlobalOnLayoutListener(this);

mPointWith=llContainer.getChildAt(1).getLeft()-llContainer.getChildAt(0).getLeft();

}

});

//页面滑动过程中回调

mViewPage.setOnPageChangeListener(newOnPageChangeListener() {

@Override

publicvoidonPageSelected(intposition) {

if(position==mImageIds.length-1){

btStart.setVisibility(View.VISIBLE);

}else

btStart.setVisibility(View.INVISIBLE);

}

@Override

publicvoidonPageScrolled(intposition,floatpositionOffset,

intpositionOffsetPixels) {

//计算当前小红点的左边距

intleftMargin=(int)(mPointWith*positionOffset+position*mPointWith);

//修改小红点的左边距

RelativeLayout.LayoutParams params=(LayoutParams)ivRedPoint.getLayoutParams();

params.leftMargin=leftMargin;

ivRedPoint.setLayoutParams(params);

}

@Override

publicvoidonPageScrollStateChanged(intstate) {

}

});

}

classMyAdapterextendsPagerAdapter{

@Override

publicintgetCount() {

returnmImageIds.length;

}

@Override

publicbooleanisViewFromObject(View view, Object object) {

returnview==object;

}

@Override

publicObject instantiateItem(ViewGroup container,intposition) {

//ImageView view=new ImageView(getApplicationContext());

//view.setBackgroundResource(mImageIds[position]);

ImageView view=mImageViewList.get(position);

container.addView(view);

returnview;

}

@Override

publicvoiddestroyItem(ViewGroup container,intposition, Object object) {

container.removeView((View)object);

}

}

@Override

publicvoidonClick(View v) {

//TODOAuto-generated method stub

switch(v.getId()) {

caseR.id.bt_start:

//PrefUtils.putBoolean("is_guide_show",true, this);

startActivity(newIntent(this, MainActivity.class));

finish();

break;

default:

break;

}

}

Xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/vp_pager"

android:layout_width="match_parent"

android:layout_height="match_parent"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:layout_marginBottom="25dp"

>

android:id="@+id/iv_red_point"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/shape_circle_selected"

/>

android:id="@+id/ll_container"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/bt_start"

android:visibility="invisible"

android:text="开始体验"

android:background="@drawable/btn_guide_selector"

android:textColor="@color/text_guide_selector"

android:paddingLeft="5dp"

android:paddingRight="5dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:layout_marginBottom="60dp"

>

点击样式,状态选择器

技术分享
技术分享


SlidingMenu

技术分享

java代码

/*

*开发流程:

* 1.引入SlidingMenu库

* 2.Activity继承自SlidingFragmentActivity

* 3.onCreate改为public

* 4.setBehindContentView,设置基本侧边栏效果

* 5.获取SlidingMenu,深层次定制

* */

publicclassMainActivityextendsSlidingFragmentActivity{

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setBehindContentView(R.layout.left_menu);

SlidingMenu slidingMenu=getSlidingMenu();

//全屏触摸

slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);

slidingMenu.setSecondaryMenu(R.layout.right_menu);

//修改侧边栏宽度

slidingMenu.setBehindOffset(100);//屏幕预留100个像素宽度

}

}

Fragement

继承自v4的,app是4.0后的版本,v4是任何版本都可以用

技术分享

生命周期

技术分享

Left_menu.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f00"

android:id="@+id/fl_left_menu">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是侧边栏"/>

Activity_main.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/fl_content">

BaseFragement类

/**

* 1.初始化布局initView

* 2.初始化initData

*@authorliangjun

*

*/

publicabstractclassBaseFragementextendsFragment {

publicActivitymActivity;

//Fragement被创建

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mActivity= getActivity();

}

//初始化Fragement布局

@Override

publicView onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

//TODOAuto-generated method stub

View view=initView();

returnview;

}

//activity创建结束

@Override

publicvoidonActivityCreated(Bundle savedInstanceState) {

super.onActivityCreated(savedInstanceState);

initData();

}

/**

*初始化布局,子类必须实现

*@return

*/

publicabstractView initView();

/**

*初始化数据,子类可以不实现

*/

publicvoidinitData(){}

}

ContentMenuFragement类

publicclassContentMenuFragementextendsBaseFragement {

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_left_menu,null);

returnview;

}

}

LeftMenuFragement类

publicclassLeftMenuFragementextendsBaseFragement {

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_left_menu,null);

returnview;

}

}

MainActivity类

publicclassMainActivityextendsSlidingFragmentActivity {

StringTAG_LEFT_MENU="TAG_LEFT_MENU";

StringTAG_CONTENT="TAG_CONTENT";

@Override

publicvoidonCreate(Bundle savedInstanceState) {

//TODOAuto-generated method stub

requestWindowFeature(Window.FEATURE_NO_TITLE);

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setBehindContentView(R.layout.left_menu);

SlidingMenu slidingMenu=getSlidingMenu();

//全屏触摸

slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

//修改侧边栏宽度

slidingMenu.setBehindOffset(100);//屏幕预留100个像素宽度

initFragement();

}

privatevoidinitFragement() {

FragmentManager fm=getSupportFragmentManager();

FragmentTransaction transaction=fm.beginTransaction();//开启事务

//将帧布局替换为对应的Fragement

transaction.replace(R.id.fl_left_menu,newLeftMenuFragement(),TAG_LEFT_MENU);

transaction.replace(R.id.fl_content,newContentMenuFragement(),TAG_CONTENT);

transaction.commit();//提交事务

}

}

fragement_content.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是Fragement侧边栏"/>

fragement_left_menu.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是Fragement主页面"/>

效果

技术分享

主页面底部菜单按钮 xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"

/>

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/bottom_tab_bg"

android:orientation="horizontal"

android:gravity="center">

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/btn_home_selector"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

样式

"ButtonTabStyle">

"android:layout_width">wrap_content

"android:layout_height">wrap_content

"android:gravity">center

"android:layout_weight">1

"android:padding">5dp

"android:button">@null

"android:textColor">@color/text_button_tab_selector

XUtil

导入jar包

技术分享

使用

@ViewInject(R.id.vp_pager)

privateViewPagermVierPager;

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_content,null);

ViewUtils.inject(this,view);//注入view和事件

returnview;

}

ContentFragement页面

五个标签页的基类

/**

*五个标签页的基类

*@authorliangjun

*

*/

publicabstractclassBasePage {

publicActivitymActivity;

publicViewmRootView;

publicImageButtonbtnMenu;

publicFrameLayoutflContent;

publicTextViewtvTitle;

publicBasePage(Activity activity){

mActivity=activity;

initView();

}

publicvoidinitView() {

mRootView= View.inflate(mActivity, R.layout.base_paper,null);

tvTitle= (TextView)mRootView.findViewById(R.id.tv_title);

btnMenu=(ImageButton)mRootView.findViewById(R.id.btn_menu);

flContent=(FrameLayout)mRootView.findViewById(R.id.fl_content2);

}

/**

*初始化数据

*/

publicabstractvoidinitData();

}

举例首页

publicclassHomePagerextendsBasePage {

publicHomePager(Activity activity) {

super(activity);

}

@Override

publicvoidinitData() {

tvTitle.setText("智慧上海");

TextView view=newTextView(mActivity);

view.setText("首页");

view.setTextColor(Color.RED);

view.setTextSize(22);

view.setGravity(Gravity.CENTER);

flContent.addView(view);

}

}

ContentMenuFragement类

publicclassContentMenuFragementextendsBaseFragement {

@ViewInject(R.id.vp_pager)

privateViewPagermVierPager;

privateArrayListmPagers;

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_content,null);

ViewUtils.inject(this,view);//注入view和事件

returnview;

}

@Override

publicvoidinitData() {

super.initData();

//初始化5个标签页面

mPagers=newArrayList();

mPagers.add(newHomePager(mActivity));

mPagers.add(newNewCenterPager(mActivity));

mPagers.add(newSmartServicePager(mActivity));

mPagers.add(newGovAffairsPager(mActivity));

mPagers.add(newSettingPager(mActivity));

mVierPager.setAdapter(newContentAdapter());

}

classContentAdapterextendsPagerAdapter{

@Override

publicintgetCount() {

returnmPagers.size();

}

@Override

publicbooleanisViewFromObject(View arg0, Object arg1) {

returnarg0==arg1;

}

@Override

publicObject instantiateItem(ViewGroup container,intposition) {

BasePage pager=mPagers.get(position);

container.addView(pager.mRootView);//将页面添加到容器中

pager.initData();//初始化数据

returnpager.mRootView;

}

}

}

BaseFragement类

/**

* 1.初始化布局initView

* 2.初始化initData

*@authorliangjun

*

*/

publicabstractclassBaseFragementextendsFragment {

publicActivitymActivity;

//Fragement被创建

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mActivity= getActivity();

}

//初始化Fragement布局

@Override

publicView onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

//TODOAuto-generated method stub

View view=initView();

returnview;

}

//activity创建结束

@Override

publicvoidonActivityCreated(Bundle savedInstanceState) {

super.onActivityCreated(savedInstanceState);

initData();

}

/**

*初始化布局,子类必须实现

*@return

*/

publicabstractView initView();

/**

*初始化数据,子类可以不实现

*/

publicvoidinitData(){}

}

总结布局框架

技术分享

继承自v4的,app是4.0后的版本,v4是任何版本都可以用

技术分享

生命周期

技术分享

Left_menu.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f00"

android:id="@+id/fl_left_menu">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是侧边栏"/>

Activity_main.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/fl_content">

BaseFragement类

/**

* 1.初始化布局initView

* 2.初始化initData

*@authorliangjun

*

*/

publicabstractclassBaseFragementextendsFragment {

publicActivitymActivity;

//Fragement被创建

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mActivity= getActivity();

}

//初始化Fragement布局

@Override

publicView onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

//TODOAuto-generated method stub

View view=initView();

returnview;

}

//activity创建结束

@Override

publicvoidonActivityCreated(Bundle savedInstanceState) {

super.onActivityCreated(savedInstanceState);

initData();

}

/**

*初始化布局,子类必须实现

*@return

*/

publicabstractView initView();

/**

*初始化数据,子类可以不实现

*/

publicvoidinitData(){}

}

ContentMenuFragement类

publicclassContentMenuFragementextendsBaseFragement {

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_left_menu,null);

returnview;

}

}

LeftMenuFragement类

publicclassLeftMenuFragementextendsBaseFragement {

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_left_menu,null);

returnview;

}

}

MainActivity类

publicclassMainActivityextendsSlidingFragmentActivity {

StringTAG_LEFT_MENU="TAG_LEFT_MENU";

StringTAG_CONTENT="TAG_CONTENT";

@Override

publicvoidonCreate(Bundle savedInstanceState) {

//TODOAuto-generated method stub

requestWindowFeature(Window.FEATURE_NO_TITLE);

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setBehindContentView(R.layout.left_menu);

SlidingMenu slidingMenu=getSlidingMenu();

//全屏触摸

slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

//修改侧边栏宽度

slidingMenu.setBehindOffset(100);//屏幕预留100个像素宽度

initFragement();

}

privatevoidinitFragement() {

FragmentManager fm=getSupportFragmentManager();

FragmentTransaction transaction=fm.beginTransaction();//开启事务

//将帧布局替换为对应的Fragement

transaction.replace(R.id.fl_left_menu,newLeftMenuFragement(),TAG_LEFT_MENU);

transaction.replace(R.id.fl_content,newContentMenuFragement(),TAG_CONTENT);

transaction.commit();//提交事务

}

}

fragement_content.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是Fragement侧边栏"/>

fragement_left_menu.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是Fragement主页面"/>

效果

技术分享

主页面底部菜单按钮 xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"

/>

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/bottom_tab_bg"

android:orientation="horizontal"

android:gravity="center">

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/btn_home_selector"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

样式

"ButtonTabStyle">

"android:layout_width">wrap_content

"android:layout_height">wrap_content

"android:gravity">center

"android:layout_weight">1

"android:padding">5dp

"android:button">@null

"android:textColor">@color/text_button_tab_selector

XUtil

导入jar包

技术分享

使用

@ViewInject(R.id.vp_pager)

privateViewPagermVierPager;

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_content,null);

ViewUtils.inject(this,view);//注入view和事件

returnview;

}

ContentFragement页面

五个标签页的基类

/**

*五个标签页的基类

*@authorliangjun

*

*/

publicabstractclassBasePage {

publicActivitymActivity;

publicViewmRootView;

publicImageButtonbtnMenu;

publicFrameLayoutflContent;

publicTextViewtvTitle;

publicBasePage(Activity activity){

mActivity=activity;

initView();

}

publicvoidinitView() {

mRootView= View.inflate(mActivity, R.layout.base_paper,null);

tvTitle= (TextView)mRootView.findViewById(R.id.tv_title);

btnMenu=(ImageButton)mRootView.findViewById(R.id.btn_menu);

flContent=(FrameLayout)mRootView.findViewById(R.id.fl_content2);

}

/**

*初始化数据

*/

publicabstractvoidinitData();

}

举例首页

publicclassHomePagerextendsBasePage {

publicHomePager(Activity activity) {

super(activity);

}

@Override

publicvoidinitData() {

tvTitle.setText("智慧上海");

TextView view=newTextView(mActivity);

view.setText("首页");

view.setTextColor(Color.RED);

view.setTextSize(22);

view.setGravity(Gravity.CENTER);

flContent.addView(view);

}

}

ContentMenuFragement类

publicclassContentMenuFragementextendsBaseFragement {

@ViewInject(R.id.vp_pager)

privateViewPagermVierPager;

privateArrayListmPagers;

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_content,null);

ViewUtils.inject(this,view);//注入view和事件

returnview;

}

@Override

publicvoidinitData() {

super.initData();

//初始化5个标签页面

mPagers=newArrayList();

mPagers.add(newHomePager(mActivity));

mPagers.add(newNewCenterPager(mActivity));

mPagers.add(newSmartServicePager(mActivity));

mPagers.add(newGovAffairsPager(mActivity));

mPagers.add(newSettingPager(mActivity));

mVierPager.setAdapter(newContentAdapter());

}

classContentAdapterextendsPagerAdapter{

@Override

publicintgetCount() {

returnmPagers.size();

}

@Override

publicbooleanisViewFromObject(View arg0, Object arg1) {

returnarg0==arg1;

}

@Override

publicObject instantiateItem(ViewGroup container,intposition) {

BasePage pager=mPagers.get(position);

container.addView(pager.mRootView);//将页面添加到容器中

pager.initData();//初始化数据

returnpager.mRootView;

}

}

}

BaseFragement类

/**

* 1.初始化布局initView

* 2.初始化initData

*@authorliangjun

*

*/

publicabstractclassBaseFragementextendsFragment {

publicActivitymActivity;

//Fragement被创建

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mActivity= getActivity();

}

//初始化Fragement布局

@Override

publicView onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

//TODOAuto-generated method stub

View view=initView();

returnview;

}

//activity创建结束

@Override

publicvoidonActivityCreated(Bundle savedInstanceState) {

super.onActivityCreated(savedInstanceState);

initData();

}

/**

*初始化布局,子类必须实现

*@return

*/

publicabstractView initView();

/**

*初始化数据,子类可以不实现

*/

publicvoidinitData(){}

}

总结布局框架

技术分享

















































以上是关于android项目智慧北京开发完整步骤:第一天的主要内容,如果未能解决你的问题,请参考以下文章

[项目一]第一天

Android的json中怎么去掉第三方符号

Android史上第一震撼榜单—2017年Android百大框架排行榜,附完整项目

Android 黑马 52 期视频,不加密,免费下载

android入门:第一天

基于 Android 和 WCF 技术的软件开发