Android自学过程总结
经过今天一整天学习,主要内容包括数据传输,界面跳转。
界面基本方法
onCreate:每个项目中都要重写这个方法在里面做些逻辑判断。
setContentView :这个方法时给当前活动用来加载布局文件的来获得XML中的布局ID并针对这个ID进行操作。
如果想要某个活动设置为主活动的话则必须在配置文件Android Manifest.xml中对应的活动中设置如下代码:
Toast:是安卓的一种提醒方式类似js中的alert用法时Toast.makeText(活动界面上下文,具体要弹出的内容,设置弹窗的时间长短).show();
要销毁一个活动在其对应的方法下设置finish();效果与返回键类似。
startActivity():这个方法主要时用来启动活动界面的通常与Intent连用
startActivityForResult():这个方法与startActivity()类似也是用来启动活动的不同的事它可以传如一个请求码。用来做数据回发时用到。
onBackPressed();这个方法主要针对用户点击返回键的时候也能处理数据。如:做数据返回时用户不点击按钮点击返回键。
## 数据传输,以及意图
数据传输和意图主要靠的时Intent,它的使用方式Intent(当前活动上下文,意图操作(你要干什么))。
intent能存数据传输数据主要是通过putExtra.
putExtra:主要是通过键值对的形式存放数据这个和java中的map有点像。如putExtra(“键”,数据);
getStringExtra:是通过前一个页面的键来获取传来的值。(注:如前面传来的是INT型的就是getIntExtra…以此类推根据不同类型判断)。
setResult():这个方法是用来向上一个活动返回数据要传递两个参数一个是(RESULT_OK,另外一个是存放数据的载体如;intent)返回时要调用finish();来销毁当前活动。
onActivityResult():方法用来处理返回回来的数据用法是,它需要携带三个参数如:onActivityResult(1 startActivityForResult()传递过来的请求码,处理后的结果,携带数据的载体如:Intent);
onSaveInstanceState();该方法主要时为了保留临时数据,如输入框输入的数据输入一半时打开另一个活动然后再返回可以保证刚刚输入的数据不会丢失。该方法的用法是它会携带一个Bundle的参数Bundle也是一个存数据的载体与Intent不同的是它是利用put+数据类型如:putString,putint…存数据也是键值对形式。
活动的生命周期
活动的生命周期大概可以分为四个状态:运行状态,暂停状态,停止状态,销毁状态。
运行状态:就是指活动正在与客户交互中。
暂停状态:活动不处于最当前的页面但是任然在屏幕上比如对话框形式的界面存在多个框这时候就是这种状态。
停止状态:活动不可见的时候进程可能还在的情况下。
销毁状态:完全不可再进程都没有的时候。
活动的生命周期有七个方法:
oncreat();活动第一次出现的时候调用;
onstart():活动由看不见到看见的时候调用;
onresume();这个方法在客户正在界面操作的时候调用;
onpause();这个方法在从一个活动跳到另一个活动的时候调用
onstop();这个在活动不可见的时候调用。与onpause区别在于当界面出现对话框后面界面还在的时候onpause()会被调用onstop();不会被调用。
onDestroy();在活动要被执行销毁之前调用。
onRestart();活动重新被调用的时候启用;
活动的启动模式
活动的启动模式有四种:1.standard,2.singleTop,3.singleTask,和4.singeInstance,这些都是在Android Manifest.xml中配置的。
1是系统默认的方式,如:1-1-1,返回也要按3次才能退出程序.比较麻烦。不会识别打开的界面是否已经是当前页面会不停的创建这个活动界面。
2.表示如果当前的界面已经存在系统不会再打开一个类似的界面而是直接应用这个界面。用与解决重复打开页面的问题
3与2相比就更智能了2中要退出程序如果开的是不同的活动如A-B-A则要用三次Back才可推出。如果用3这种配置模式的话只要退出一次就好了。只要把3设置在对应的活动中就会自动识别与自己一样的活动。然后直接处于顶端。移除的话就退出程序。
4类似一个邮差的载体比如你从A-B-C,然后返回C直接到A,这里的B就是邮差的身份。暂时隐身于背后当你把A和C都退出来的时候B才出现。singeInstance把这个设置在哪个活动的配置XML中这个活动就会变成邮差。
类管理
1.设置一个独立类假设为A然后让它继承父类APPCompatActivity.然后让我们编写的每个活动都继承这个类那么我们就能对每个类进行追踪定位了。而且每个外部类都能被这个A调用。从而来处理每个界面的操作。如销毁所有活动。可以一次性销毁所有活动不用一个一个去关闭。