安卓----第一章(多姿多彩的控件世界)笔记记录

2016-07-22  本文已影响48人  timber_wu

1.Android Studio开发环境搭建


所需的程序以及安装顺序

JDK:根据自己的系统下载相应的JDK版本并进行环境变量的配置。JDK官网下载

Android Studio和SDK:可在官网进行下载,不过可能网速会过慢,也可以通过http://www.androiddevtools.cn/下载,该网址有Android Studio和SDK的集成包---bundle关键字的程序,另外还有许多安卓环境搭建需要的东西都可以在此网址进行下载,大部分都有很准确的注释用以正确的操作成功。

Genymotion和Virtual Box:Genymotion是第三方的模拟器,相比官方自带的模拟器在速度上非常快速的,而下载Genymotion就需要附带下载Virtual Box虚拟机,在Genymotion的官网中有集成了Virtual Box的版本,相应的官网的链接为Genymotion官网,如果无法下载集成的版本,也可到Virtual Box的官网下载其软件。


2.项目的创建


点击“Start a new Android Studio project”选项 Application name:项目名称、Company Domain:公司域名、Package name:app、打包名称、project location:存放路径 选择第一个选项并设置最小的SDK版本 如果不清楚可以点击蓝色的“Help me choose"可以查看相应版本的情况 选择项目的活动类型,这里有很多现成的模板可以使用,对于初学者选择默认的Empty Activity即可。 设定活动名称,界面布局的名称,以及界面标题,最后点击finish完成项目的创建。

3.Activitiy(Android组件中最重要的四大组件之一)


3.1Activity间的跳转

3.1.1从MainActivity跳转到另一个Activity

Intent intent = new Intent(MainActivity.this, OtherActivity.class);

startActivity(intent);

3.1.2自动跳转到另一个Activity

Handler mhandler=newHandler();

mHandler.postDelayed(newRunnable() 

{

@Override

public void run() {I

ntentintent =newIntent(MainActivity.this,OtherActivity.class);  

            startActivity(intent);     

     }      },1000);

3.2Activity间传递数据

3.2.1发送数据

Intent intent = new Intent(MainActivity.this, OtherActivity.class);

intent.putExtra(String name, DataType value);

startActivity(intent);

3.2.2获取数据

Intent intent = getIntent();

if (intent != null) { 

 String title = intent.getStringExtra(); 

 //还有getIntExtra, getIntArrayExtra等等

}

3.2.3发送和接收对象

新建的类

public class Test implements Serializable{

  private String mName;  

private int mAge;

  public Test(String name, int age) {

      mName = name;     

 mAge = age

  }

}

对类的对象进行序列化

intent.putExtra("test",newTest("kevin",18));

接收

(Test)intent.getSerializable("test")

3.3Activity的生命周期

生命周期图

需要注意的几点:

1.Activity实例是由系统自动创建,并在不同的状态期间回调相应的方法。一个最简单的完整的Activity生命周期会按照如下顺序回调:onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy。称之为entire lifetime。

2.当执行onStart回调方法时,Activity开始被用户所见(也就是说,onCreate时用户是看不到此Activity的,那用户看到的是哪个?当然是此Activity之前的那个Activity),一直到onStop之前,此阶段Activity都是被用户可见,称之为visible lifetime。

3.当执行到onResume回调方法时,Activity可以响应用户交互,一直到onPause方法之前,此阶段Activity称之为foreground lifetime。

在实际应用场景中,假设A Activity位于栈顶,此时用户操作,从A Activity跳转到B Activity。那么对AB来说,具体会回调哪些生命周期中的方法呢?回调方法的具体回调顺序又是怎么样的呢?

开始时,A被实例化,执行的回调有A:onCreate -> A:onStart -> A:onResume。

当用户点击A中按钮来到B时,假设B全部遮挡住了A,将依次执行A:onPause -> B:onCreate -> B:onStart -> B:onResume -> A:onStop。

3.4Activity标题栏的隐藏

在onCreate方法中添加requestWindowFeature(Window.FEATURE_NO_TITLE);

protected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

}


4.多姿多彩的控件世界


比较最常用的控件 一

控件View的通用属性:宽高、颜色、边距、是否可见、内容居中、

点击事件等

TextView 显示文本

EditText 编辑框

Button 点击按钮

.9图 一种可拉伸的图:上左——拉伸,下右——填充。

比较最常用的控件 二

ImageButton 图片按钮

ImageView 图片

SeekBar 滑动条

RatingBar 评分条

Progressbar 进度条

比较最常用的控件 三

WebView:加载网页

ListView:显示列表

GridView:显示表格式列表

ScrollView:内容可滚动视图

SufaceView:非常重要的绘图容器


5.常用技巧(快捷键)


5.1折叠/展开代码块(Collapse Expand Code Block)

描述:该操作提供一种方法,让你隐藏你不关心的部分代码,以一种较为简洁的格式显示关键代码。一个有意思的用法是隐藏匿名内部类的代码,让其看起来像一个Lambda表达式。

快捷键:Cmd + “+”/”-“(OS X)、Ctrl + Shift + “+”/”-“(Windows/Linux);

更多:可以在Settig → Editor → General → Code Folding 中设置折叠规则。

折叠/展开代码块

5.2查找操作(Find Action)

描述:输入某个操作的名称,快速查找,对于没有快捷键的部分操作这是一个很有用的技巧。

快捷键:Cmd +Shift + A(OS X)、Ctrl + Shift + A(Windows/Linux);

更多:当某个操作是有快捷键的,会显示在旁边。

查找操作

5.3查找补全(Find Complection)

描述:当你在一个文件中进行查找时,使用自动补全快捷键可以给出在当前文件中出现的建议单词;

快捷键:Cmd + F(OS X),Ctrl + F(Windows/Linux),输入一些字符,然后使用自动补全;

查找补全

5.4在方法和内部类之间跳转(Move Between Methods and Inner Classes)

描述:该操作让光标在当前文件的方法或内部类的名字间跳转。

调用:Navigate → Next Method/Previous Method;

快捷键:Ctrl + Up/Down(OS X)、Alt + Up/Down(Windows/Linux);

在方法和内部类之间跳转

5.4扩大/缩小选择(Extend/Shrink Selection)

描述:该操作会在上下文逐渐扩大/缩小当前选择范围。例如,它会先选中当前变量,再选中当前语句,然后选中整个方法,缩小选择则相反。

快捷键:Alt + 上/下 (OS X)、Ctrl+W / Ctrl + Shift + W(Windows、Linux)

扩大缩小选择

5.5列选择/块选择(Column Selection)

描述:正常选择时,当你向下选择时,会直接将当前行到行尾都选中,而块选择模式下,则是根据鼠标选中的矩形区域来选择。

调用:按住Alt,然后拖动鼠标选择。

开启/关闭块选择:Menu → Edit → Column Selection Mode

快捷键:切换块选择模式:Cmd + Shift + 8(OS X)、Shift + Alt + Insert(Windows/Linux);

列选择/块选择

5.6语句补全(Complete Statement)

描述:这个方法将会生成缺失的代码来补全语句,常用的使用场景如下:

在行末添加一个分号,即使光标不在行末;

为if、while、for 语句生成圆括号和大括号;

方法声明后,添加大括号;

调用:Menu → Edit → Compelete Current Statement

快捷键:Cmd + Shift + Enter(OS X)、Ctrl + Shift + Enter(Windows/Linux);

更多:如果一个语句已经补全,当你执行该操作时,则会直接跳到下一行,即使光标不在当前行的行末。

语句补全

5.7提取方法(Extract Method)

描述:提取一段代码块,生成一个新的方法。当你发现某个方法里面过于复杂,需要将某一段代码提取成单独的方法时,该技巧是很有用的。

调用:Menu → Refactor → Extract → Method

快捷键:Cmd + Alt + M(OS X)、Ctrl + Alt + M(Windows/Linux);

更多:在提取代码的对话框,你可以更改方法的修饰符和参数的变量名。

提取方法

5.8提取变量(Extract Variable)

描述:这是一个提取变量的快捷操作。当你在没有写变量声明的直接写下值的时候,这是一个很方便生成变量声明的操作,同时还会给出一个建议的变量命名。

调用:Menu → Refactor → Extract → Variable

快捷键:Cmd + Alt + V(OS X)、Ctrl + Alt + V(Windows/Linux);

更多:当你需要改变变量声明的类型,例如使用 List 替代 ArrayList,可以按下Shift + Tab,就会显示所有可用的变量类型。

提取变量

5.9合并行和文本(Join Lines and Literals)

描述:这个操作比起在行末使劲按删除键爽多了!该操作遵守格式化规则,同时:

合并两行注释,同时移除多余的//;

合并多行字符串,移除+和双引号;

合并字段的声明和初始化赋值;

快捷键:Ctrl + Shift + J;

合并行和文本

5.10包裹代码(Surround With)

描述:该操作可以用特定代码结构包裹住选中的代码块,通常是if语句,循环,try/catch语句或者runnable语句。 如果你没有选中任何东西,该操作会包裹当前一整行。

快捷键:Cmd + Alt + T(OS X)、Ctrl + Alt + T(Windows/Linux)

包裹代码

5.11其他

Ctrl+N:快速查找类名、文件

Ctrl+B:直接跳转到类、方法、成员变量定义的地方。与Ctrl+鼠标左键效果一样

.Ctrl+Alt+V:调用方法时传入的参数是比较复杂的表达式时,可用此组合键重构变量,以简化代码的复杂度。

Ctrl+Alt+V:提取局部变量

Ctrl+Alt+F:提取全局变量


上一篇下一篇

猜你喜欢

热点阅读