公文素材库 首页

达内培训总结

时间:2019-05-27 20:31:26 网站:公文素材库

达内培训总结

我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间跳转

3.4.4.1.操作步骤

步骤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.4.4.2.【案例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.4.4.3.【案例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.4.4.【案例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(相对布局)3.5.1.1概述RelativeLayout的特点是控件之间的位置是相对兄弟控件的位置或父容器的位置,因此称为相对布局。用相对布局可实现比较复杂的布局。3.5.1.2.常用属性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值的控件的左端对齐图-93.5.1.3.【案例3.5】用相对布局制作登录界面本案例显示如图-10所示的登录界面:图-10以下是XML代码示例:达内IT培训集团(1)本控件位于(1)所定义的控件3.5.2.TableLayout(表格布局)3.5.2.1.概述

达内IT培训集团

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

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

3.5.2.2【案例3.6】表格布局示例

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

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

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

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

3.5.3.2.weight属性

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

达内IT培训集团

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

图-24中的代码演示了用线性布局加嵌套布局实现登录界面:

达内IT培训集团

宽度宽度android:layout_width="fill_parent"android:layout_height="wrap_content">16

达内IT培训集团

图-253.5.4.AboluteLayout(绝对布局)3.5.4.1.概述

绝对布局(AbsoultLayout):完全由程序员自己设置控件在屏幕中的位置、大小等属性。提示:绝对布局因不利于适配不同的屏幕,因此不建议使用该布局方式开发。

3.5.4.2.常用属性

在绝对布局中,每个控件都有以下两个属性用于定位:1、layout_x:设置控件在屏幕上的横坐标。2、layout_y:设置控件在屏幕上的纵坐标。

3.5.4.3.【案例3.8】用绝对布局完成图-10的登录界面设计

达内IT培训集团3.5.5.FrameLayout(帧布局)3.5.5.1概述

帧布局中,容器为每个加入其中的控件创建一个空白的区域(称为一帧)。每个控件占据一帧,这些帧会按gravity属性执行自动对齐。

帧布局的的效果是将其中的所有控件都叠加在一起。

达内IT培训集团

3.5.5.2.常用属性

XML属性ForegroundforegroundGravityt)相关方法setForeground(Drawable)setFroegroundGravity(in说明设置该帧布局容器的前景颜色定义绘制前景图像的gravity属性3.5.5.3.【案例3.9】

用帧布局实现图-11的三个图片叠加的效果。其中,最上面的图片尺寸:32×32,中间的图片尺寸64×64,最下面的图片尺寸:128×128。图片1图片3图片2图-11以下代码是图-11的XML代码:

3.6.常用操作技巧3.6.1.如何输入中文

步骤1、按图-12操作

达内IT培训集团

(1)长按输入框(2)单击此处图-12步骤2、按图-13操作单击此处图-133.6.2.如何查看SDK源代码步骤1、下载AndroidSDK2.3.3源代码;步骤2、假设Android的SDK所在路径是E:\\MyTools\\android-sdk\\android-sdk-windows\\platforms\\android-10按以下步骤操作:在资源管理器中定位至此路径下

将源代码所在文件夹命名为sources,并复制到此处达内IT培训集团

图-14

3.7.常见问题

3.7.1.代码与APK不同步

原因:在确保代码没有错误的前提下,可以确认这是Android系统没有及时更新,做到与APK同步。解决办法:单击Eclipse菜单栏中的Project,单击Clean。(1)选则只更新选定的项目(2)选中某个项目(3)单击OK按钮

图-15

友情提示:本文中关于《达内培训总结》给出的范例仅供您参考拓展思维使用,达内培训总结:该篇文章建议您自主创作。

  来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


达内培训总结
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/479066.html
相关阅读
最近更新
推荐专题