android activity自定义抽象父类
来源:互联网 发布:淘宝购物礼品盒 编辑:程序博客网 时间:2024/05/22 06:05
android开发最常用的组件就是activity,但是activity中也有很多常用的方法,几乎每次建立activity后都需要调用的一些方法流程,在此自定义一个父类-BaseActivity,使所有的activity都继承于这个父类,继承以后会自动继承父类的方法,并集成了一些界面跳转动画等公共效果,
BaseActivity.java
public abstract class BaseActivity extends AppCompatActivity { protected Context mContext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(); setContentView(R.layout.activity_base_layout); initParent(); findViews(); setListensers(); MyApplication myApplication = (MyApplication) getApplication(); myApplication.addTempActivityInBackStack(this); } @Override protected void onActivityResult(int arg0, int arg1, Intent arg2) { // TODO Auto-generated method stub super.onActivityResult(arg0, arg1, arg2); } private void initParent() { mContext = this; LinearLayout subCententView = (LinearLayout) this.findViewById(R.id.base_sub_activty_layout); LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); View centerView = View.inflate(mContext, setContentView(), null); subCententView.addView(centerView, layoutParams); } protected boolean isShowNoNetworksPrompt() { return true; } /** * 跳转到某个Activity */ protected void gotoActivity(Context mContext, Class<?> toActivityClass, Bundle bundle) { Intent intent = new Intent(mContext, toActivityClass); if (bundle != null) { intent.putExtras(bundle); } mContext.startActivity(intent); ((Activity) mContext).overridePendingTransition(R.anim.push_right_in, R.anim.not_exit_push_left_out);//页面跳转动画 } /** * 退出到某个Activity */ protected void backActivity() { finish(); overridePendingTransition(R.anim.not_exit_push_left_in, R.anim.push_right_out);//页面退出动画 } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // 所有需要统一处理的onKeyDown写在这个if里面 if (isOnKeyDown()) { if (keyCode == KeyEvent.KEYCODE_BACK) { backActivity(); } } return super.onKeyDown(keyCode, event); } protected boolean isOnKeyDown() { return true; } /** * 加载子类布局 */ protected abstract int setContentView(); /** * 加载控件 */ protected abstract void findViews(); /** * 设置监听 */ protected abstract void setListensers(); @Override protected void onResume() { super.onResume(); MyApplication myApplication = (MyApplication) getApplication(); myApplication.setResumeContext(this); if (JPushInterface.isPushStopped(getApplicationContext())) { JPushInterface.resumePush(getApplicationContext()); } }}
activity_base_layout.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:id="@+id/base_sub_activty_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" android:orientation="vertical" > </LinearLayout></RelativeLayout>
not_exit_push_left_in.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="300" android:fromXDelta="0%p" android:interpolator="@android:anim/linear_interpolator" android:toXDelta="0%p" /></set>
not_exit_push_left_out.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="300" android:fromXDelta="0%p" android:interpolator="@android:anim/linear_interpolator" android:toXDelta="0%p" /></set>
push_right_in.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="300" android:fromXDelta="100%p" android:interpolator="@android:anim/linear_interpolator" android:toXDelta="0%p" /></set>
push_right_out.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="300" android:fromXDelta="0%p" android:interpolator="@android:anim/linear_interpolator" android:toXDelta="100%p" /></set>
阅读全文
1 0
- android activity自定义抽象父类
- 自定义fragment抽象父类
- 封装Activity 抽象类
- Android编程权威指南之Activity的抽象类使用
- android activity之间自定义类的传递
- android 自定义Activity
- android 自定义Activity
- Android 自定义Activity基类
- 抽象Activity
- android自定义Activity窗口大小
- android - 自定义Activity跳转效果
- Android自定义Activity窗口标题
- android自定义Activity窗体大小
- android自定义Activity显示样式
- (转)Android自定义Activity主题
- Android Activity传递自定义对象
- unity for android 自定义Activity
- android 自定义Activity窗口大小
- STL算法之查找
- 欢迎使用CSDN-markdown编辑器
- Java多线程
- Jedis和ShardedJedis设计分析
- 【LeetCode】119. Pascal's Triangle II
- android activity自定义抽象父类
- Android 实现音乐播放
- json文件转为plist文件输出
- python删除txt文本中的空格
- 用php实现的各种排序算法总结
- 深入Java核心
- BZOJ 1027-合金(凸包+最小环)
- Android ContentResolver 获取手机联系人
- Java的反射