第一节总结

来源:互联网 发布:复旦大学大数据试验场 编辑:程序博客网 时间:2024/06/06 10:40

一、 1)application类的建立

目的:首先,在一个Android程序中,有且只有一个Application对象,在程序开始跑起来的时候,首先执行Application的onCreate方法,这是一个Android应用的入口,在开发中,我们常常自定义一个BaseApplication用来执行某些操作。

a.处理全局变量,在整个应用程序范围内共享数据

b.管理Activity,当应用程序退出时,销毁所有的Activity

c.初始化应用程序的配置信息

d.当系统内存不足时应用能够做出合理的响应

++记得在AndroidManifest中加入name属性++

如下建立:

package com.example.myapplication.application;import android.app.Application;/** * Created by xia on 2017/7/26. */public class BaseAoolication extends Application {    @Override    public void onCreate() {        super.onCreate();    }}
2)Activity基类的建立

作用:

*1.统一的属性

*2.统一的接口

*3.统一的方法代码如下:

public class BaseActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        }}
3)实现滑动视图与FloatingActionButton

需要使用TabLayout,ViewPager,FloatingActionButton

使用TabLayout需要先导入远程库只需要在bulide.gradle中添加compile 'com.android.support:design:24.2.0'

布局界面

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="match_parent"    >    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical">    <!--orientation记得设置!!!否则无法显示viewpager-->        <android.support.design.widget.TabLayout            android:id="@+id/mTabLayout"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:background="@color/colorPrimary"            app:tabGravity="fill"            app:tabIndicatorColor="@color/colorAccent"            app:tabMode="fixed"            app:tabSelectedTextColor="@color/colorAccent"            app:tabTextColor="@android:color/white" />        <android.support.v4.view.ViewPager            android:id="@+id/mViewPager"            android:layout_width="match_parent"            android:layout_height="0dp"            android:layout_weight="1" />    </LinearLayout>    <android.support.design.widget.FloatingActionButton        android:id="@+id/FloatingActionButton"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_alignParentBottom="true"        android:layout_marginBottom="15dp"        android:layout_marginRight="15dp"        android:src="@drawable/icon_setting"/></RelativeLayout>


public class MainActivity extends AppCompatActivity {    private TabLayout mTabLayout;    private ViewPager mViewPager;    private List<String> tab;    private List<Fragment> fragments;    private FloatingActionButton floatingActionButton;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //消除布局与ActionBar间的阴影        getSupportActionBar().setElevation(0);        initData();        initView();        //为TabLayout添加适配器        mTabLayout.setupWithViewPager(mViewPager);        floatingActionButton.hide();        floatingActionButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                startActivity(new Intent(MainActivity.this,setting_Activity.class));            }        });        //ViewPager监听器        mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            //postion每个页面的编号            @Override            public void onPageSelected(int position) {                if (position==0){                    floatingActionButton.hide();                }else {                    floatingActionButton.show();                }            }            @Override            public void onPageScrollStateChanged(int state) {            }        });    }    private void initData() {        tab = new ArrayList<>();        tab.add("智能管家");        tab.add("微信精选");        tab.add("美女相册");        tab.add("个人中心");        fragments = new ArrayList<>();        fragments.add(new ButlreFragment());        fragments.add(new weixinFragment());        fragments.add(new girlFragment());        fragments.add(new userFragment());    }    private void initView() {        mTabLayout = (TabLayout) findViewById(R.id.mTabLayout);        mViewPager = (ViewPager) findViewById(R.id.mViewPager);        floatingActionButton= (FloatingActionButton) findViewById(R.id.FloatingActionButton);        //预加载        mViewPager.setOffscreenPageLimit(fragments.size());        mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {            @Override            public Fragment getItem(int position) {                return fragments.get(position);            }            @Override            public int getCount() {                return 4;            }            //设置标题            @Override            public CharSequence getPageTitle(int position) {                return tab.get(position);            }     });    }}
ViewPager加载的Fragment


public class girlFragment extends Fragment {    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {        View view=inflater.inflate(R.layout.girllayout,container, false);        return view;    }}

FloatingActionButton的实现通过<android.support.design.widget.FloatingActionButton/>加入xml中设置位置以及src就可以实现,该控件继承自ImageButton可以通过setOnClickListener实现监听。

4)ActionBar上的返回键的实现:

public class BaseActivity extends AppCompatActivity {    @Override    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {        super.onCreate(savedInstanceState, persistentState);        //ActionBar下阴影消除        getSupportActionBar().setElevation(0);        getSupportActionBar().setDisplayHomeAsUpEnabled(true);    }    //给返回箭头添加响应事件,ActionBar中的方法    @Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()){            case android.R.id.home:                finish();                break;        }        return super.onOptionsItemSelected(item);    }}

在BaseActivity中实现,继承本类的Activity均可有该功能。