BaseActivity都需要做些什么
来源:互联网 发布:轻薄笔记本电脑 知乎 编辑:程序博客网 时间:2024/04/29 08:31
BaseActivity
我们都知道,android里面有各种各样的activity,并且业务繁多的activity,其实有很多共同点,在这种情况下,我们很多时候在搭建框架时,都会思考baseactivity要有那些共性或者要限制子类做些什么。
不同之处
每个activity里面一般都需要初始化数据,视图,网络请求,实现监听,当然这几个方法是基本activity都有,但是每个activity实现的内容却不一样,所以这几个都是抽象方法,用abstract修饰,这样子类继承baseactivity的话,必须实现,这几个方法(注意:这几个方法的顺序)。
@Override protected void onCreate(Bundle savedInstanceState) { initView();//视图 initData();//初始化数据 sendServerRequest();//网络请求 setListener();//实现监听 }
相同之处
以下是提供我自己觉得写在父类BaseActivity里面会给后续的开发带来便利的方法,仅供参考,哈哈
//节省findviewbyid的写法 public <T> T find(int id) { return (T) findViewById(id); }
// 节省findviewbyid的写法,view是指定布局 public <T> T find(View view ,int id) { return (T) view.findViewById(id); }
//Activity之间的跳转 public void redirect(Class clazz,Bundle bundle){ Intent intent = new Intent(this,clazz); if (bundle!=null) { intent.putExtras(bundle); } startActivity(intent); overridePendingTransition(R.anim.view_push_left_in, R.anim.view_push_left_out);//动画 }
//土司,记得用优化的土司,不然用户体验不好 public void showToast(String tips){ ToastUtils2.showToast(this, tips); }
//返回,一般顶部栏返回的时候,去调用 public void back() { finish(); overridePendingTransition(R.anim.view_push_right_in, R.anim.view_push_right_out); }
/** * 显示加载对话框 */ public void showMyDialog() { showMyDialog("加载数据中···"); } public void showMyDialog(final String text) { runOnUiThread(new Runnable() { @Override public void run() { if (progressDialog == null) { progressDialog = new Dialog(BaseActivity.this, R.style.progress_dialog); progressDialog.setContentView(R.layout.dialog_loading); // progressDialog.setCancelable(true); progressDialog.setCanceledOnTouchOutside(false); progressDialog.getWindow().setBackgroundDrawableResource( android.R.color.transparent); TextView msg = (TextView) progressDialog .findViewById(R.id.id_tv_loadingmsg); msg.setText(text); } progressDialog.show(); } }); }
/** * 隐藏加载对话框 */ public void dismissMyDialog() { runOnUiThread(new Runnable() { @Override public void run() { if (progressDialog != null) { progressDialog.dismiss(); } } }); }
/** * 显示进度条 */ public void showProgressDialog() { runOnUiThread(new Runnable() { @Override public void run() { if (mProgressDialog == null) { mProgressDialog = new ProgressDialog(mContext); mProgressDialog.setMessage("正在加载,请稍候···"); mProgressDialog .setProgressStyle(ProgressDialog.STYLE_SPINNER); mProgressDialog.setCancelable(true); } mProgressDialog.show(); } }); } /** * 隐藏进度条 */ public void dismissProgressDialog() { runOnUiThread(new Runnable() { @Override public void run() { if (mProgressDialog != null) { mProgressDialog.dismiss(); } } }); }
0 0
- BaseActivity都需要做些什么
- 软件的概要设计都需要做什么
- iOS社会化分享都需要做什么步骤?
- 我都在做些什么!
- 我都做了些什么
- Telemetry都做了些什么
- Spring Cloud都做了些什么
- SEO都做什么?
- 从什么都不懂开始(二)——创建Project提交到Github需要做什么
- windows mobile 开发需要做些什么
- 我这一生,需要做些什么?
- 做程序设计,你需要些什么...
- 想要突破,你需要做些什么?
- 这个月需要做什么?
- 测试需要做什么
- XML都需要学什么?
- 程序员都需要学习什么
- 成功,我们都需要什么?
- TOJ 1399.Blocks
- 插入排序法(Java)
- R语言如何 将数据导出、导入
- 剑指-单例模式
- java.lang.OutOfMemoryError: PermGen space 解决
- BaseActivity都需要做些什么
- 地图
- css浮动(float,clear)
- 打印水仙花数(Java)
- android Fragments详解五:与activity通讯
- angularJs 中ui-router 路由向controller传递数据
- 02 TypeScript开发环境搭建(Windows)
- 有道翻译书签,支持网页翻译和划词翻译
- 开源:ASP.NET MVC+EF6+Bootstrap开发框架