达内培训总结_第1页
达内培训总结_第2页
达内培训总结_第3页
达内培训总结_第4页
达内培训总结_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

达内培训总结达内培训总结

我201*年毕业,第一年做的是销售的工作,做了一年,没有什么业绩,我渐渐熟悉到自己的特定不适合做销售,于是我打算来济南达内培训自己比拟喜爱的编程,我做这一打算并不是心血来潮,而是经过深思熟虑的。我当时的想法是学完编程就去一家日资企业工作,期间熬炼自己的编程力量和外语力量,为以后更好的进展打下根底。但刚来达内的时候我心里很没有底,由于自己以前并没有接触过java,只是在大学期间有一点c语言根底,对于自己能否学好java特别没有信念。但我觉得,既然自己打算的事就要自己负责,况且每一个高手都从菜鸟走过来的,所以我下决心要好好学。达内的工程经理特别负责,有什么不会的问就可以,即使有时候工程经理也不能解决,我们还可以发邮件直接询问授课教师。在头一个月,我觉得很吃力,有些问题怎么想也搞不懂,弄得我特别焦躁,可是我坚信只要坚持就可以胜利,所以遇到不会的问题我会先自己思索,实在想不出就问其他根底好的同学,就这样日复一日,我的困惑虽然还有,但自己心里有底了,觉得java可以学好。多谢同学的帮忙,我真的认为到这个学校其实学习气氛才是最重要的,我们遇到问题可以相互争论,没有人觉得不好意思,通过互帮互助我们学到了许多java编程的捷径和陷阱,我们每个人都在进步,这种感觉很棒。这种状态始终持续到做工程,工程一开头,我觉得没有头绪,思维跟不上教师的步伐,此时我对之前建立起来的自信产生了疑心,但教师准时开导我们,他说,一开头都会这样,只要你踏踏实实去做,一步一个脚印,不管做多做少,都是一种进步,我听教师的话,每一个问题,每一个细节,我都经过独立思索,期间虽然很痛快,但我慢慢有了自己的头绪,这使我信念倍增。之后的每一天我都觉得过得好快,经过八天的努力,我也根本把全部工程的功能完成了!自己觉得特别骄傲,回想一下,四个月前我还是一无所知的脑残,现在竟然可以独立完成当当网这么简单的工程,我真的觉得自己这四个月没有虚度,同时也对以后的IT之路布满自信!真的特别感谢我的同学,教师,工程经理,没有他们我不行能取得如此的成绩。

扩展阅读:达内Android培训的技巧归纳

达内IT培训集团

3.Activity跳转与布局治理器

3.1.Intent类3.1.1.概述

Intent类,Android的组件间的桥梁。该类负责启动组件,在组建之间传递数据。

3.1.2创立Intent对象

方式(1):Intentintent=newInent(起始组件的对象,目标组件类.class);例如:Intentintent=newintent(this,SecondActivity.class);说明:(1)参数-this:当前Activity类的对象;(2)参数-SecondActivity.class:目标Activity类.class;(3)Android有四大组件,分别是Activity、Service、ContentProvider和Broadcast。以下仅以Activity组件举例。方式(2):Intentintent=newIntent();intent.setClass(起始组件的对象,目标组件类.class);方式(3):用上一个Activity传递过来的intent对象创立intent对象,也可以看作是猎取上一个Activity传递过来的intent对象。Intentintent=getIntent();说明:

getIntent():Activity类的方法,用于猎取上一个Activity传递过来的Intent对象的地址。

3.1.3.常用方法

1、putExtra(key,value);作用:以键/值对形式在intent对象中保存根本数据类型的数据。2、putExtra(key,(Serializable)object)作用:若存放的是对象,则要将对象序列化再存放数据,如上行代码所示。3、getIntExtra(key,intDefaultValue);作用:猎取存放在intent对象中的键名为key的int类型的数据。若猎取不到,则赋一个默认值intDefaultValue。

4、getDoubleExtra(key,doubleValue);作用:猎取存放在intent对象中的键名为key的double类型的数据。若猎取不到,则赋一个默认值longDefaultValue。

5、getLongExtra(name,longDefaultValue);

作用:猎取存放在intent对象中的键名为key的long类型的数据。若猎取不到,则赋一个默认值longDefaultValue。

6、getCharExtra(key,charDefault);作用:猎取存放在intent对象中的键名为key的char类型的数据。若猎取不到,则赋一个默认值charDefaultValue。7、getString(key);

达内IT培训集团

作用:猎取存放在intent对象中的键名为key的String类型的数据。8、getStringArray(key);作用:猎取存放在intent对象中的键名为key的String类型的数组。9、getxxxArray(key);作用:猎取存放在intent对象中键名为key的根本数据类型的数组。10、getSerializableExtra(key);作用:猎取存放在intent对象中键名为key的对象。

3.2.Bundle类

3.2.1.概述

Bundle类用于Activity之间的数据传递,Bundle通过键/值对的方式存取数据。Intent类中的putExtra方法实质上是将数据存放在了Bundle对象中。Intent类将Bundle对象的存取数据进展了包装,简化了数据存取的操作。

3.2.2.常用方法

1、clear();

作用:去除此Bundle中的全部数据。2、getString(Stringkey);

作用:返回指定key的字符串

3、putString(Stringkey,Stringvalue);

作用:存放键为key的字符串值4、remove(Stringkey);

作用:移除指定key的值5、putxxx(String,xxxvalue);作用:存放根本数据类型的数据,参见Intent.putxxx();6、putSerializable(key,objectValue);作用:存放(序列化之后的)对象。7、putxxxArray(key,arrayValue);作用:存放元素是根本数据类型的数组。

3.3.Context类简介

3.3.1.概述

Context(上下文)类是Activity类的间接父类。下列图是类继承图:

达内IT培训集团

图-1

3.3.2.常用方法

publicvoidstartActivity(Intent);

作用:该方法负责按Intent对象的设置启动目标Activity。该类也常用于保存Activity对象。说明:Activity类重写了startActivity方法。

3.4.Activity跳转3.4.1.概述

1、Activity是Android系统的四大组件之一,可以把Activity当成扫瞄器的标签,相当于空白的网页,而界面相当于扫瞄器内的网页。

2、将Activity与界面绑定就相当于在扫瞄器内填写了相应的网页。

3、Activity可以跳转,就相当于在扫瞄器内点击链接后跳转到另外一个扫瞄器窗口。提示:Activity与扫瞄器一样,只是一个壳。真正为用户供应交互的是界面。实际开发中会常常编写诸如注册、登录之类的应用,就会消失从一个窗口跳转至另一个窗口的应用。以下介绍Activity跳转的方法。3.4.2.与跳转相关的方法1、startActivity(intent);作用:跳转至目标Activity。

参数-intent:在该参数中设置起始Activity和目标Activity。2、startActivityForResult(intent,requestCode);作用:启动目标Activity,并要求目标Activitiy返回处理结果。

参数-requestCode:是一个int类型的数据,该数据称为恳求码,作用是告知目标Activity启动的信息。

说明:恳求码用来标识源Activity。3、setResult(intresultCode);

作用:从目标Activity返回到源Activity,并返回int类型的数据。

说明:有可能从多个目标Activity返回处理结果至启动的Activity,因此resultCode标识是从哪个目标Activity返回的。

4、onActivityResult(intrequestCode,intresultCode,Intentdata);

作用:处理从目标Activity返回的结果,其中第一个参数是本Activity发送的恳求码,其次个参数是目标Activity返回的标识码,作用见上所述。第三个参数是一个Intent类型的对象,该对象从目标Activity传递过来。

达内IT培训集团

3.4.3.Activity内部切换界面

通过在Activity.onCreate()方法中调用secContentView(resId),转变布局界面的资源索引值resId,到达在同一个Activity中显示不同的.xml布局界面的效果。

【案例3.1】制作如图-2所示的效果

工程名称:exam03_1,包名:com.tarena.exam03_1。工程入口:MainAct.java。

图-2a

图-2b当单击了图-2a中的按钮,界面跳转至图-2b界面。

步骤1、翻开res/layout/main.xml,该文件是图-2a的布局文件,代码如下:

步骤2、在res/layout文件夹下创立second.xml文件,该文件是图-2b的布局文件,代码如下:

步骤3、翻开src/com.tarena.exam03_1包下的Main.java,在onCreate方法中输入以下代码:

//在Activity中显示main.xml界面

达内IT培训集团

setContentView(R.layout.main);

ButtonbtnOK=(Button)findViewById(R.id.btnOK);btnOK.setOnClickListener(newOnClickListener(){

});

@Override

publicvoidonClick(Viewv){}

//显示second.xml布局文件

setContentView(R.layout.second);

3.4.4.Activity间跳转

.操作步骤

步骤1、创立目标Activity类;

步骤2、创立与目标Activity类配套的XML布局文件,例如代码:res/layout/second.xml

步骤3、在目标Activity.onCreate()中,编写设置Activity显示内容的代码,例如代码:

setContentView(R.layout.second);步骤4、创立Intent对象,指明起始Activity的对象和目标Activity.class;步骤5、调用putExtra(key,value)方法存放数据。

步骤6、调用startActivity(intent);启动目标Activity,若是要求目标Activity返回结果,则步骤7、若要求带返回结果的启动,则在目标Activity中调用setResult(resultCode)方法,返回结果码。

步骤8、若要处理目标Activity返回的结果,则在起始Acivity类中要定义onActivityResult(requestCode,resultCode,data)步骤9、在工程清单文件中注册新增的Activity类,按以下操作:

调用startForResult(intent,requestCode)方法。达内IT培训集团

此两行设置.Main为工程的入口输入红框内的代码提示:若想指定某个Activity为工程的启动Activity(入口),则将上图中蓝框中的代码移至该类的注册代码中。例如,设置SecondAct为启动的Activity,则将以上代码转变为如下代码即可。.【案例3.2】不带数据和返回结果的Activity跳转工程名:exam03_2,包名:com.tarena.exam03_2。工程入口:MainAct.java,效果如图3所示:图5a图5b

图-3a图-3b

单击图-3a的login按钮,将跳转至其次个Activity的窗口,如图-3b所示:

达内IT培训集团

步骤1、图-3a的布局文件的代码参见exam03_2/res/layout/main.xml。此处不再列出。步骤2、图-3b的布局文件的代码参见exam03_2/res/layout/second.xml。此处不再列出。步骤3、翻开src/com.tarena.exam03_2/MainAct.java,该类是图-3a的Activity。代码如下:publicclassMainActextendsActivity{//定义上下文对象的引用privateContextcontext;@Override

publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);context=this;//存放当前Activity的实例setContentView(R.layout.main);

ButtonbtnLogin=(Button)findViewById(R.id.btnLogin);btnLogin.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//创立intent对象,设置起始Activity对象context以及目标ActivityIntentintent=newIntent(context,SecondAc.class);startActivity(intent);//启动目标Activity}});}}

步骤5、翻开src/com.tarena.exam04_2/SecondAct.java,该类是图-3b的Activity类,输入以下代码:

//本类是目标Activity类

publicclassSecondActextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//设置res/layout/second.xml为当前Activity的显示内容setContentView(R.layout.second);//猎取起始Activity传递过来的intentIntentintent=getIntent();}}

.【案例3.3】带数据的Activity间的跳转

通过图-4a输入用户名单击login按钮,跳转至图-4b,并将用户名传递至图-4b。本案例工程名称为exam03_3,包名为com.tarena.exam03_3。

达内IT培训集团

图-4a图-4b步骤1、图-4a的布局文件参见exam03_3工程中的res/layout/main.xml文件。步骤2、图-4b的布局文件参见exam03_3工程中的res/layout/second.xml文件。

步骤3、翻开src/com.tarena.exam03_3/Main.java,该文件是图-4a的Activity,代码如下:publicclassMainextendsActivity{@Override

publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);

finalEditTextetName=(EditText)findViewById(R.id.etName);ButtonbtnLogin=(Button)findViewById(R.id.btnLogin);btnLogin.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//创立intent对象,设置起始Activity对象context以及目标ActivityIntentintent=newIntent(Main.this,SecondActivity.class);if(etName.getText().length()>0){Bundlebundle=newBundle();//实例化Bundle对象//存放用户名数据bundle.putString(“userName“,etName.getText().toString());intent.putExtras(bundle);//将bundle存放在intent对象中}startActivity(intent);//启动目标Activity}});}}

说明:1、第22行在内部匿名类中调用Main类的当前对象,要写成Main.this。2、第24-28行使用Bundle存储数据,再将Bundle对象存放在intent中。也可以按以下方式代替第26、27行:Intent.putExtra(“username”,etName.getText().toString());实际开发中推举按以上方式存放数据,可简化数据存取的步骤。

.【案例3.4】启动带返回结果的Activity

工程名称:exam03_4,包名:com.tarena.exam03_4。本案例演示启动带返回结果的Acivity,并将返回结果显示在日志窗口中。效果如图-5a-图-5e所示:1、单击图-5a的login按钮,启动LoginAct类(显示图-5b)。单击图-5b中的login-finish按钮,

将返回MainAct类(显示图-5c),并在图-5c下方的日志窗口中输出:returnfromLoginAct。2、单击图-5a的regist按钮,启动RegistAct类(显示图-5d),单击图-5d中的regist-return按钮,

将返回MainAct类(显示图-5e),并在图-5e下方的日志窗口中输出:returnfromRegistAct提示:

达内IT培训集团

图-5a

图-5b

图-5c

图-5d

图-5e

步骤1、图-5a的布局文件参见exam03_4工程中的res/layout/main.xml文件。步骤2、图-5b的布局文件参见exam03_4工程中的res/layout/login.xml文件。步骤3、图-5d的布局文件参见exam03_4工程中的res/layout/regist.xml文件。

步骤4、翻开src/com.tarena.exam03_4/MainAct.java,该类用于治理图-5a窗口。代码如下:publicclassMainActextendsActivity{//以下两个常量表示恳求码publicstaticfinalintREQUEST_CODE_LOGIN=0;publicstaticfinalintREQUEST_CODE_REGIST=1;//以下两个常量表示返回码publicstaticfinalintRESULT_CODE_LOGIN=10;publicstaticfinalintRESULT_CODE_REGIST=20;//定义上下文对象的引用privateContextcontext;@Override

达内IT培训集团

publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);context=this;//存放当前Activity的实例setContentView(R.layout.main);

finalButtonbtnRegist=(Button)findViewById(R.id.btnRegist);ButtonbtnLogin=(Button)findViewById(R.id.btnLogin);//启动LoginActivity

btnLogin.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//创立intent对象,设置起始Activity对象context以及目标ActivityIntentintent=newIntent(context,LoginAct.class);//启动目标ActivitystartActivityForResult(intent,REQUEST_CODE_LOGIN);}});//启动RegistActivitybtnRegist.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){Intentintent=newIntent();intent.setClass(context,RegistAct.class);startActivityForResult(intent,REQUEST_CODE_REGIST);}});}

//处理目标Activity返回的结果@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){super.onActivityResult(requestCode,resultCode,data);if(resultCode==RESULT_CODE_LOGIN){//若返回码是RESULT_CODE_LOGINLog.i(“MainAct“,“returnfromLoginAct“);}elseif(resultCode==RESULT_CODE_REGIST){//若返回码是RESULT_CODE_REGISTLog.i(“MainAct“,“returnfromRegistActy“);}}}

步骤6、在src/com.tarena.exam03_4包下创立RegistAct.java类,该类负责治理图-5b,代码如下://本类是目标Activity类

publicclassRegistActextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//设置res/layout/second.xml为当前Activity的显示内容setContentView(R.layout.regist);ButtonbtnRegist=(Button)findViewById(R.id.btnReturn);

达内IT培训集团

}}说明:btnRegist.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//返回启动的Activity并返回结果码setResult(MainAct.RESULT_CODE_REGIST);finish();//关闭本窗口}});

红框中第2行返回启动的Activity(MainAct类),并返回结果码Main.RESULT_CODE_REGIST。红框中第3行完毕本窗口。3.5.布局治理器3.5.1.RelativeLayout(相对布局)概述RelativeLayout的特点是控件之间的位置是相对兄弟控件的位置或父容器的位置,因此称为相对布局。用相对布局可实现比拟简单的布局。.常用属性XML属性gravityLayout_gravity相关方法setGravity(int)图-6说明内部控件的对齐方式(属性值见图7)在父容器布局中的对齐方式(属性值见图8)1、gravity属性值列表Top顶端对齐Bottom底端对齐Left左端对齐Right右端对齐Center居中对齐Center_vertical垂直方向居中Center_horizontal水平方向居中fill_vertical垂直方向填充fill_horizontal水平方向填充图-72、本布局在父容器内的对齐方式属性说明(属性值true:是。false:否)layout_center_horizontal水平方向居中layout_center_vertical垂直方向居中

达内IT培训集团layout_centerParent在父容器中居中Layout_alignParentBottom在父容器中底端对齐Layout_alignParentTop在父容器中顶端对齐Layout_alignParentLeft在父容器中左端对齐Layout_alignParentRight在父容器中右端对齐

图-8

3、控件中与相对布局相关的属性,如图-9所示:属性说明toRightOf位于指定id值的控件的右边toLeftOf位于指定id值的控件的左边above位于指定id值的控件的上边below位于指定id值的控件的下边layout_alignTop与指定id值的控件上端对齐layout_alignBottom与指定id值的控件的下端对齐layout_alignRight与指定id值的控件的右端对齐layout_alignLeft与指定id值的控件的左端对齐图-.【案例3.5】用相对布局制作登录界面本案例显示如图-10所示的登录界面:图-10以下是XML代码例如:达内IT培训集团(1)本控件位于(1)所定义的控件3.5.2.TableLayout(表格布局).概述

达内IT培训集团

1、表格布局采纳行列的形式来治理UI中的控件。

2、TableRow用来治理表格中的行,TableRow中的一个控件占据该行的一列。若不用TableRow,而3、列数由表格中最多的列打算。整个表格的宽度默认是占满整个父容器。直接放置一个控件,则该控件将独占一行。

【案例3.6】表格布局例如

用表格布局实现图-19的登录界面。代码如图-23所示:

3.5.3.LinearLayout(线性布局).概述

线性布局在前面已阐述,线性布局有水平和纵向两个方向,线性布局通过嵌套布局也可实现简单的布局。

提示:嵌套布局是指一个布局中还包含若干个布局。

.weight属性

该属性掌握水平和垂直方向某个控件所占的比例,用该属性可实现类似于网页中框架布局的效果。

达内IT培训集团

.【案例3.7】用嵌套布局结合线性布局实现图-10的登录界面设计。

图-24中的代码演示了用线性布

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论