android 应用.docx

上传人:b****6 文档编号:8850361 上传时间:2023-02-02 格式:DOCX 页数:51 大小:5.10MB
下载 相关 举报
android 应用.docx_第1页
第1页 / 共51页
android 应用.docx_第2页
第2页 / 共51页
android 应用.docx_第3页
第3页 / 共51页
android 应用.docx_第4页
第4页 / 共51页
android 应用.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

android 应用.docx

《android 应用.docx》由会员分享,可在线阅读,更多相关《android 应用.docx(51页珍藏版)》请在冰豆网上搜索。

android 应用.docx

android应用

 

Android手机项目实训暑期高级研修班

笔记

版本1.0

 

制作:

何福贵

修改:

张伟

日期:

2010-7-12

目录

一、文件要求:

3

二、androidsdk的配置4

三、android虚拟机的建立6

四、项目的添加8

五、新建demo实例14

六、开始编程15

七、做adk的关联18

八、添加list控件24

九、异常处理25

十、多界面的修改27

十一、网上下载的源代码的编译28

十二、页面的跳转29

十三、系统debug30

十四、layout布局32

十五、布局管理器34

十六、打开另外一个窗口及事件处理36

十九、添加新界面的流程39

二十、信息的传递与接收41

二十一、程序的整体分析43

二十二、java线程48

二十三、列表消息的处理49

二十四、模拟器管理50

二十五、activity的生命周期51

一、文件要求:

1、jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe

2、android-sdk-windows-1.6_r1

3、eclipse_android_win7

共计825M。

二、androidsdk的配置

三、android虚拟机的建立

注意:

Name不能使用中文文件名。

四、项目的添加

注意:

Name可以使用中文名

注意:

如果出现错误,请先clear一下。

五、新建demo实例

很多类库都是从这里找到的。

六、开始编程

源代码存放在src目录下

Res存放的是资源,Layout存放的布局,R.layout.代表资源的大类;values存放的是相应的值。

七、做adk的关联

按ctrl+单击,出现类的说明及实例

类的文件名为Activety.class

注意:

Android严格区分大小写。

Ctrl+Shift+o自动导入库

packagecom.test;

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.view.Menu;

publicclassmainextendsActivity{

/**Calledwhentheactivityisfirstcreated.*/

finalstaticintMENU_ITEM_ABOUT=1;

finalstaticintMENU_ITEM_EXIT=2;

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

menu.add(1,MENU_ITEM_ABOUT,1,"关于").setIcon(R.drawable.logo120dpi);

menu.add(1,MENU_ITEM_EXIT,1,"退出").setIcon(R.drawable.logo120dpi);

returnsuper.onCreateOptionsMenu(menu);

}

}

增加菜单:

八、添加list控件

publicclassmainextendsListActivity{

/**Calledwhentheactivityisfirstcreated.*/

finalstaticintMENU_ITEM_ABOUT=1;

finalstaticintMENU_ITEM_EXIT=2;

privateString[]mStrings={"玉树天气","地震咨询"};

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

//setContentView(R.layout.main);

setListAdapter(newArrayAdapter(this,

android.R.layout.simple_list_item_1,mStrings));

getListView().setTextFilterEnabled(true);

}

九、异常处理

注意:

找红色的地方,仔细查看会有提示出错的行数,具体见十三章。

快速注释:

Ctrl+shift+/

十、多界面的修改

1、新建一个类

2、修改AndroidManifest.xml

xmlversion="1.0"encoding="utf-8"?

>

android="

package="com.text.vi"

android:

versionCode="1"

android:

versionName="1.0">

icon="@drawable/icon"android:

label="@string/app_name">

name=".mailview"

android:

label="@string/app_name">

name=".NewsListView"

android:

label="@string/app_name">

name="android.intent.action.MAIN"/>

name="android.intent.category.LAUNCHER"/>

minSdkVersion="4"/>

注意:

android.intent.action.MAIN

程序入口函数

android.intent.category.LAUNCHER

生成桌面图标

十一、网上下载的源代码的编译

1、右键删除下面的R.java,必须把src下面的R.java删除,否则删除gen下面的无效

2、重新建立工程,注意虚拟机要选择同一个版本号,重新构建R.java

十二、页面的跳转

Intent的使用,比较关键。

protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid){

Log.v("========",mStrings[position]);

if(position==1){

Intentintent=newIntent(

this,

NewsListView.class

);

this.startActivity(intent);

}

}

十三、系统debug

右键可以调出显示行号

系统有数据未出始化,导致出错。

十四、layout布局

1、拖控件到layout,找属性,添加内容。

2、在AndroidManifest.xml中增加相应的类的定义

name=".about"

android:

label="@string/app_name">

name="android.intent.action.MAIN"/>

name="android.intent.category.LAUNCHER"/>

3、在入口处调用

publicclassaboutextendsActivity{

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.about);

}

}

4、第三方界面工具

DroidDraw是一个基于JavaSwing的Android界面设计器,我们可以通过它来生成复杂的AndroidLayoutXML文件,据作者介绍,Android的Layout和SwingLayout中有很好的对应,设计器的代码编写起来还是比较容易的。

属性设置,如果改为数字,可以自动跳到拨号处

十五、布局管理器

布局文件位置

大布局套小布局,可以水平和垂直排列。

布局管理器

系统

十六、打开另外一个窗口及事件处理

1启动另外一个窗口,其中AboutView为JAVA文件

caseMENU_ITEM_ABOUT:

Intentintent=newIntent(this,AboutView.class);

this.startActivity(intent);

break;

2事件处理

//获得界面的Button

Buttonbutton=(Button)this.findViewById(R.id.Button01);

//获得界面的Button的事件相应

button.setOnClickListener(newView.OnClickListener(){

@Override

publicvoidonClick(Viewv){

//TODOAuto-generatedmethodstub

finish();

}

});

 

 

name=".NewDetailView"

android:

label="@string/app_name">

对应代码

publicbooleanonKeyDown(intkeyCode,KeyEventevent){

if(keyCode==event.KEYCODE_BACK)

{

excute();

}

returnfalse;

}

 

十九、添加新界面的流程

1、添加class类,加入源代码

publicclassnewdetailextendsActivity{

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.detail);

}

}

2、添加layout布局

3、添加AndroidManifest.xml

二十、信息的传递与接收

1、新建一个Bundle类,构造并发送数据。

2、接收数据并显示数据

//TextView01=(TextView)findViewById(R.id.TextView01);

TextViewtextView=(TextView)this.findViewById(R.id.TextView01);

Bundledata=this.getIntent().getExtras();

intitem=data.getInt("Item");

Stringtitle=data.getString("title");

this.setTitle(title);

//TextView01.setText(mStrings[1]);

textView.setText(mStrings[item]);

二十一、程序的整体分析

1、系统分析

共四个页面,一个主页面,一个关于页面,一个信息列表页面,一个详细信息页面。

页面的主程序的启动

publicclassmailviewextendsListActivity{

/**Calledwhentheactivityisfirstcreated.*/

finalstaticintMENU_ITEM_ABOUT=1;

finalstaticintMENU_ITEM_EXIT=2;

privateString[]mStrings;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

//setContentView(R.layout.main);

mStrings=this.getResources().getStringArray(R.array.mStrings);

setListAdapter(newArrayAdapter(this,

android.R.layout.simple_list_item_1,mStrings));

getListView().setTextFilterEnabled(true);

}

AndroidManifest.xml

icon="@drawable/icon"android:

label="@string/app_name">

name=".mailview"

android:

label="@string/app_name">

name="android.intent.action.MAIN"/>

name="android.intent.category.LAUNCHER"/>

2、Active各页面的调用

About页面的调用

caseMENU_ITEM_ABOUT:

Intentintent=newIntent(

this,

about.class

);

this.startActivity(intent);

break;

新闻列表页面的调用

protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid){

Log.v("========",mStrings[position]);

//if(position==1){

Intentintent=newIntent(

this,

NewsListView.class

);

this.startActivity(intent);

//}

}

 

详细信息页面的调用

protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid){

//Log.v("========",mStrings[position]);

Intentintent=newIntent(

this,

newdetail.class

);

3、新闻列表页的处理及信息的传递

protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid){

//Log.v("========",mStrings[position]);

Intentintent=newIntent(

this,

newdetail.class

);

Bundledata=newBundle();

data.putInt("Item",position);

data.putString("title",mStrings[position]);

intent.putExtras(data);

this.startActivity(intent);

}

4、菜单的处理

首页菜单的调用

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

menu.add(1,MENU_ITEM_ABOUT,1,R.string.about).setIcon(R.drawable.smlnpatch240dpi);

menu.add(1,MENU_ITEM_EXIT,2,R.string.exit).setIcon(R.drawable.app_sample_code);

returnsuper.onCreateOptionsMenu(menu);

}

 

菜单的处理

publicbooleanonOptionsItemSelected(MenuItemitem){

switch(item.getItemId())

{

caseMENU_ITEM_ABOUT:

Intentintent=newIntent(

this,

about.class

);

this.startActivity(intent);

break;

caseMENU_ITEM_EXIT:

this.finish();

System.exit(0);

break;

}

returnsuper.onOptionsItemSelected(item);

}

5、系统按键的调用

publicbooleanonKeyDown(intkeyCode,KeyEventevent){

if(keyCode==event.KEYCODE_BACK){

exceteExit();

}

returnfalse;

}

按键及对话框确定与取消的处理

protectedvoidexceteExit(){

newAlertDialog.Builder(mailview.this)

.setIcon(R.drawable.icon)

.setTitle(R.string.hello)

.setPositiveButton(R.string.ok,newDialogInterface.OnClickListener(){

publicvoidonClick(DialogInterfacedialog,intwhichButton){

/*UserclickedOKsodosomestuff*/

finish();

}

})

.setNegativeButton(R.string.cancel,newDialogInterface.OnClickListener(){

publicvoidonClick(DialogInterfacedialog,intwhichButton){

/*UserclickedCancelsodosomestuff*/

}

})

.show();

}

7、详细列表页的处理

信息的接收与显示

publicclassnewdetailextendsActivity{

privateString[]mStrings={"对不起,您只在注册时间起1小时后才有发帖权限,请返回","本人经过精心筛选的android开发必备教程,堪称最专业android开发书籍,和大家分享222222222","本人经过精心筛选的android开发必备教程,堪称最专业android开发书籍,和大家分享3333333333333"};

TextViewtextView;

finalstaticintMENU_ITEM_PREV=1;

finalstaticintMENU_ITEM_NEXT=2;

intitem;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.detail);

//TextView01=(TextView)findViewById(R.id.TextView01);

textView=(TextView)this.findViewById(R.id.TextView01);

Bundledata=this.getIntent().getExtras();

item=data.getInt("Item");

Stringtitle=data.getString("title");

this.setTitle(title);

//TextView01.setText(mStrings[1]);

textView.setText(mStrings[item]);

textView.setTextColor(0xffff0000);

 

8、其它信息

Ctrl+shift+o

自动导入库

Tab+shift

缩短空格

this.finish();

System.exit(0);

页面的退出

Res资源中的文件不能以数字开头

Layout中的文件夹名不能为以大写

批量添加注释ctrl+/

Orietation是设置垂直布局

包实际就是文件夹

二十二、java线程

publicclasslogoextendsActivity

impl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1