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

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:提取全局变量


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容