途牛旅行网网站建设,品牌建设运营规划,潜山网站建设公司哪里有,太原网站制作优化seo在安卓应用中#xff0c;经常需要Activity中经常需要有大量相似的Activity类#xff0c;这些类往往有相似的结构与功能#xff0c;因此产生了大量重复代码#xff0c;为此#xff0c;以下提供一种方法有效的降低了代码冗余。
定义Activity工具类 * 应用程序Activity…在安卓应用中经常需要Activity中经常需要有大量相似的Activity类这些类往往有相似的结构与功能因此产生了大量重复代码为此以下提供一种方法有效的降低了代码冗余。
定义Activity工具类 * 应用程序Activity管理类用于Activity管理和应用程序退出* 修订历史 * * **/public class AppManager {private static StackActivity activityStack;private static AppManager instance;private AppManager(){}/*** 单一实例*/public static AppManager getAppManager(){if(instancenull){instancenew AppManager();}return instance;}/*** 添加Activity到堆栈*/public void addActivity(Activity activity){if(activityStacknull){activityStacknew StackActivity();}activityStack.add(activity);}/*** 获取当前Activity堆栈中最后一个压入的*/public Activity currentActivity(){Activity activityactivityStack.lastElement();return activity;}/*** 结束当前Activity堆栈中最后一个压入的*/public void finishActivity(){Activity activityactivityStack.lastElement();finishActivity(activity);}/*** 结束指定的Activity*/public void finishActivity(Activity activity){if(activity!null){activityStack.remove(activity);activity.finish();activitynull;}}/*** 结束指定类名的Activity*/public void finishActivity(Class? cls){for (Activity activity : activityStack) {if(activity.getClass().equals(cls) ){finishActivity(activity);}}}/*** 结束所有Activity*/public void finishAllActivity(){for (int i 0, size activityStack.size(); i size; i){if (null ! activityStack.get(i)){activityStack.get(i).finish();}}activityStack.clear();}/*** 退出应用程序*/public void AppExit(Context context) {try {finishAllActivity();ActivityManager activityMgr (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);activityMgr.restartPackage(context.getPackageName());System.exit(0);android.os.Process.killProcess(android.os.Process.myPid());} catch (Exception e) { }}
}
定义Activity基类
public abstract class BaseActivity extends Activity implements OnClickListener {/*** Android生命周期回调方法-创建*/Overridepublic void onCreate(Bundle paramBundle) {super.onCreate(paramBundle);// 设置没有标题// requestWindowFeature(Window.FEATURE_NO_TITLE);mContext this;app (AmbowApplication) getApplication();AppManager.getAppManager().addActivity(this);initView();}/*** Android生命周期回调方法-销毁*/Overrideprotected void onDestroy() {AppManager.getAppManager().finishActivity(this);super.onDestroy();}Overrideprotected void onResume() {super.onResume();overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);}Overrideprotected void onPause() {super.onPause();}/*** 初始化界面*/private void initView() {loadViewLayout();findViewById();processLogic();setListener();}/*** find控件*/protected abstract void findViewById();/*** 加载布局*/protected abstract void loadViewLayout();/*** 后台获取数据*/protected abstract void processLogic();/*** 设置监听*/protected abstract void setListener();
将获取布局获取View,获取后台数据设置监听设置为抽象方法使得子类继承时必须要实现。
子类对抽象方法的实现 Overrideprotected void findViewById() {newsLv (ListView) this.findViewById(R.id.news_lv);gallery (MyGallery) galleryView.findViewById(R.id.gallery);galleryRl (RelativeLayout) galleryView.findViewById(R.id.rl_gallery);bannerTv (TextView) galleryView.findViewById(R.id.banner_tv);addMoreBtn (TextView) addMoreView.findViewById(R.id.btn_add_more);}Overrideprotected void loadViewLayout() {setContentView(R.layout.news_list_layout);galleryView View.inflate(mContext, R.layout.gallery_layout, null);addMoreView View.inflate(mContext, R.layout.add_more, null);setTitleBarView(false, 资讯, -1, true);}Overrideprotected void processLogic() {newsLv.addHeaderView(galleryView);eduNewsList new ArrayListNewsListEntity.News();newsLv.addFooterView(addMoreView);
// getTopNewsData();}Overrideprotected void setListener() {addMoreBtn.setOnClickListener(this);newsLv.setOnItemClickListener(new OnItemClickListener() {Overridepublic void onItemClick(AdapterView? arg0, View arg1, int arg2,long arg3) {Intent detailIntent new Intent(mContext,NewsDetailActivity.class);if (eduNewsList.size() arg2 - 1) {detailIntent.putExtra(id, eduNewsList.get(arg2 - 1).Id);startActivity(detailIntent);}}});