01-01-Androidq_一日游
1Q观?font face="DejaVu Serif, serif">Android的全景地图:
l出?font face="DejaVu Serif, serif">Google官方发布?font face="DejaVu Serif, serif">Android?font face="DejaVu Serif, serif">4层结构图。最底层?font face="DejaVu Serif, serif">Linux KernelQ主要一些与g相关的最底层的操作,比如各种驱动Q内存管理,q程理{)Q第二层?font face="DejaVu Serif, serif">Libraries?font face="DejaVu Serif, serif">Android runtimeQ?font face="DejaVu Serif, serif">Library是一堆由C/C++~写的基库,Android主要包括一?font face="DejaVu Serif, serif">Dalvik虚拟机和core librariesQ,W三层是application frameworkQ顾名思义是各U的框架Q用于对W四层的应用提供接口和进行管理)Q最高层?font face="DejaVu Serif, serif">applicationsQ就是^常呢些直接和手机用户q行交互的东西)?/p>
2Q?font face="DejaVu Serif, serif">Android VS Iphone
大致Cl了两个手机操作pȝq_之间的差异和两个公司之间的敌对关pR?/p>
3Q?font face="DejaVu Serif, serif">Android常用lgQ四大天王)
ActivityQ最漂亮Q门面功夫要做?/p>
IntentQ最牛力Q运输数据全赖他?/p>
ServiceQ最低调Q后台服务看不到?/p>
Content ProviderQ最博学Q数据存N中地?/p>
4Q?font face="DejaVu Serif, serif">Android开发工?/p>
常用IDEQ?font face="DejaVu Serif, serif">EclipseQ配上插?font face="DejaVu Serif, serif">ADTQ?/p>
开发工具包Q?font face="DejaVu Serif, serif">Android SDKQ?font face="DejaVu Serif, serif">2010.12.06发布?font face="DejaVu Serif, serif">2.3的版本)
5Q参?font face="DejaVu Serif, serif">Android王国的金?/p>
大致介绍了通过Android的两U赚qҎQ卖应用和嵌入广告。(Mars推荐W二U)
01-02-搭徏Android开发环?/p>
1Q?font face="DejaVu Serif, serif">Android SDK的安?/p>
2Q?font face="DejaVu Serif, serif">ADT的安装与配置
3Q?font face="DejaVu Serif, serif">Android的模拟器配置
/***官方l出了很详细的安装文档,q里不详l展开Q步骤大致如下:
Q?font face="DejaVu Serif, serif">1Q安装和配置JDK?font face="DejaVu Serif, serif">JRE1.5Q?font face="DejaVu Serif, serif">1.6更佳Q?/p>
Q?font face="DejaVu Serif, serif">2Q安装带JavaSDK?font face="DejaVu Serif, serif">Eclipse3.4或?font face="DejaVu Serif, serif">3.5
Q?font face="DejaVu Serif, serif">3Q下?font face="DejaVu Serif, serif">Android SDKQ较为准的说法?font face="DejaVu Serif, serif">Android SDK download platformQ?/p>
Q?font face="DejaVu Serif, serif">4Q在Eclipse中安?font face="DejaVu Serif, serif">ADT插g
Q?font face="DejaVu Serif, serif">5Q配|?font face="DejaVu Serif, serif">Android SDK的\?/p>
Q?font face="DejaVu Serif, serif">6Q下载虚拟机和相x档(和一些选用的功能)***/
01-03-say_hello_to_Android
1Q创Z?font face="DejaVu Serif, serif">Android应用E序的步?/p>
Q略Q?/p>
2Q?font face="DejaVu Serif, serif">Android应用E序目录l构
src:short for sourceQ存放源代码的地斏V?/p>
genQ主要就?font face="DejaVu Serif, serif">R.java文g存放的位|?/p>
asset:存放资源文g的文件夹Q不会在R.java中自动生成对应的数据?/p>
resQ?font face="DejaVu Serif, serif">short for resourceQ存放资源文件的文g夹,q在R.java里面有对应的数据?/p>
3Q?font face="DejaVu Serif, serif">AndroidManifest.xml文g的作?/p>
每编写一个活动都需要在q里注册?/p>
其中?font face="DejaVu Serif, serif"><intent filter>是区分应用启动时优先启动哪个Activity的标记?/p>
4Q?font face="DejaVu Serif, serif">Android相关文g资源的作?/p>
提到了一个名?#8220;键值对”的概念(XML的?要查阅相兌料了Q?/p>
01-04-Activity初步
1Q?font face="DejaVu Serif, serif">Activity的主要作?/p>
2Q创Z?font face="DejaVu Serif, serif">Activity的方?/p>
3Q在AndroidManifest.xml文g当中注册应用Activity的方?/p>
4Q在Android当中d控g的方?/p>
/***按作者的说法是:Activity不好译Q反正就是理解成一个与用户q行交互的界面,但是一?font face="DejaVu Serif, serif">Activity本n只是一个近乎空白容器,要实C互界面就需要在上面攑օ各种适用的控件?/p>
一?font face="DejaVu Serif, serif">Activity要?font face="DejaVu Serif, serif">Activityc,而且臛_要实?font face="DejaVu Serif, serif">onCreate()的方法。ƈ且记得要?font face="DejaVu Serif, serif">AndroidManifest.xml中进行注?/p>
每个Activity一般都对应着一?font face="DejaVu Serif, serif">layoutQ在layout中定义和攄控gQ控件内容可以直接在xml中编写,?font face="DejaVu Serif, serif">Mars的做法是didQ然后在源代码中?font face="DejaVu Serif, serif">findViewById()Ҏ来进行引用和写入内容。(感觉?font face="DejaVu Serif, serif">xml里面写比较方便,用着手是了)***/
01-05-Activity?font face="DejaVu Serif, serif">Intent
1Q多?font face="DejaVu Serif, serif">Activity之间的关p?/p>
2Q?font face="DejaVu Serif, serif">Intent的基本作?/p>
3Q在一?font face="DejaVu Serif, serif">Activity中启动另一?font face="DejaVu Serif, serif">Activity的方?/p>
4Q?font face="DejaVu Serif, serif">Intent?font face="DejaVu Serif, serif">Activity中传递数据的基本Ҏ
/***可以?font face="DejaVu Serif, serif">Intent对多?font face="DejaVu Serif, serif">Activity之间切换Q这?font face="DejaVu Serif, serif">Activity可以在同一个应用程序当中也可以不再同一个应用程序当中)?font face="DejaVu Serif, serif">Intent可以?font face="DejaVu Serif, serif">Activity之间q行切换和传输数据(data或?font face="DejaVu Serif, serif">Extras键值对Q?font face="DejaVu Serif, serif">Intent的作用不限于启动zdQ?font face="DejaVu Serif, serif">Intent可以启动很多componentQ比?font face="DejaVu Serif, serif">broadcast{?font face="DejaVu Serif, serif">Mars认ؓIntent虽然一般被译成意图但实不是太好的翻译,他目前也没有惛_较好的就暂时先吧Intent看成一U请求?/p>
?font face="DejaVu Serif, serif">pptQ?/p>
一?font face="DejaVu Serif, serif">Intent对象包含了一l信息:
1,Component name 启动lg的名Uͼlg可以是活动啊q播啊很多)
2,Action 要求lg执行的动作(pȝl除了很多参敎ͼ参看documentationQ?/p>
3,Data 由原lg到新lg传输的数?/p>
4,Category 没讲
5,Extras 也是数据Q不q是键值对Q什么是键值对Q理解成两个字符ԌQ?/p>
6,Flags 没讲
***/
01-06-Android当中的常见控?/p>
1Q?font face="DejaVu Serif, serif">TextView的用方法(昄cd文本框)
2Q?font face="DejaVu Serif, serif">EditText的用方法(可输入类型文本框Q?/p>
3Q?font face="DejaVu Serif, serif">Button的用方法(按钮Q?/p>
4Q?font face="DejaVu Serif, serif">Menu的用方法(菜单Q?/p>
/***我在Mars操作中所注意到的东西Q?/p>
Q?font face="DejaVu Serif, serif">1Qؓ所以显C类型文本框中,setText()Ҏ中最好是?font face="DejaVu Serif, serif">string中徏立键值对q进行引用,q样有助与实现应用简化了各种语言的的译问题。(当然目前不认为写的应用会被翻译,不过好习惯是要提前养成的Q?/p>
Q?font face="DejaVu Serif, serif">2Q?font face="DejaVu Serif, serif">Mars老师好会善用Eclipse强大的编辑功能,强大的快捷键比如Ctrl+Shift+O ; Alt+. ; Ctrl+1要多多用之
Q?font face="DejaVu Serif, serif">3Q关?font face="DejaVu Serif, serif">OptionsMenu的两个方法:onCreateOptionsMenus()?font face="DejaVu Serif, serif">OnOptionsMenuSelected()
***/
01-07-Activity生命周期Q一Q?/p>
七个生命周期Q?font face="DejaVu Serif, serif">
Q?font face="DejaVu Serif, serif">1Q?font face="DejaVu Serif, serif">onCreate()?font face="DejaVu Serif, serif">ActivityW一ơ启动的时候执行;在这里编写实?font face="DejaVu Serif, serif">Activity?font face="DejaVu Serif, serif">layout的代码,q添加对应的监听器?/p>
Q?font face="DejaVu Serif, serif">2Q?font face="DejaVu Serif, serif">onStart()?font face="DejaVu Serif, serif">Activity能被用户看到的时候执?/p>
Q?font face="DejaVu Serif, serif">3Q?font face="DejaVu Serif, serif">onResume()?font face="DejaVu Serif, serif">Activity能获得用L点的时候执行(能与用户q行交互的时候)
Q?font face="DejaVu Serif, serif">4Q?font face="DejaVu Serif, serif">onPause()?font face="DejaVu Serif, serif">Activity当中启动另一?font face="DejaVu Serif, serif">Activity的时候执?/p>
Q?font face="DejaVu Serif, serif">5Q?font face="DejaVu Serif, serif">onStop()?font face="DejaVu Serif, serif">Activity不能被用L到的时候执行(被另外一?font face="DejaVu Serif, serif">Activity完全覆盖Q?/p>
Q?font face="DejaVu Serif, serif">6Q?font face="DejaVu Serif, serif">onRestart()在处?font face="DejaVu Serif, serif">stop()状态的Activity重新启动的时候(区别?font face="DejaVu Serif, serif">onCreate()的初ơ启动)
Q?font face="DejaVu Serif, serif">7Q?font face="DejaVu Serif, serif">onDestroy()?font face="DejaVu Serif, serif">Activity被销毁的时候(两种情况Q用h调用了finish()ҎQ或者在pȝ资源不的时候系l自动清理处于后台状态的ActivityQ?/p>
01-08-Activity的生命周期(二)
1Q?font face="DejaVu Serif, serif">Task的基本概?/p>
2Q?font face="DejaVu Serif, serif">Activity?font face="DejaVu Serif, serif">Task之间的关p?/p>
3Q对话框风格Activity的用方?/p>
/***
Q?font face="DejaVu Serif, serif">1Q?font face="DejaVu Serif, serif">Task is a stack of Activity.所?font face="DejaVu Serif, serif">Task只能q行push?font face="DejaVu Serif, serif">pop操作Q内部不能进行重新排序?font face="DejaVu Serif, serif">Android昄的始l时Task最上面?font face="DejaVu Serif, serif">Activity?font face="DejaVu Serif, serif">Task的一个重要意义:?font face="DejaVu Serif, serif">Task中所?font face="DejaVu Serif, serif">Activity成ؓ一个整体,l用戯好的体验?/p>
Q?font face="DejaVu Serif, serif">2Q如果在调用另一?font face="DejaVu Serif, serif">Activity的时候调用原Activity?font face="DejaVu Serif, serif">finish()ҎQ原Activity会被销毁(即不再在栈中Q?/p>
Q?font face="DejaVu Serif, serif">3Q?font face="DejaVu Serif, serif">Android在系l资源不够用的时候会自动清理一?font face="DejaVu Serif, serif">ActivityQ当Activity处于onPause()Q?font face="DejaVu Serif, serif">onStopQ?font face="DejaVu Serif, serif">onDestroy()的状态时Q则有可能会?font face="DejaVu Serif, serif">kill?/p>
Q?font face="DejaVu Serif, serif">4Q一?font face="DejaVu Serif, serif">Activity?font face="DejaVu Serif, serif">AndroidManifest中注册的时候,可以通过讄theme?font face="DejaVu Serif, serif">theme.dialog的方法显CZؓ对话框风|是不会完全遮挡住原Activity的那U,在实际手机应用中相当常用Q?font face="DejaVu Serif, serif">***/
01-09-Activity布局初步(一)
1Q?font face="DejaVu Serif, serif">LinearLayout的用方?/p>
2Q?font face="DejaVu Serif, serif">TableLayout的用方?/p>
/***
大致介绍了线性和表格两种常用布局和它们在xml中的一些属性比?font face="DejaVu Serif, serif">gravity,padding,orientation,weight,singleLine{,详细可以参看documentation
***/
01-10-Activity布局初步(?font face="DejaVu Serif, serif">)
大致介绍?font face="DejaVu Serif, serif">Layout的相互嵌套。(怺嵌套能够构造更加复杂和华丽的布局Q?/p>
01-11-Activity的布局初步Q三Q?/p>
1Q相对布局的基本概?/p>
2Q相对布局与其他布局的区?/p>
3Q相对布局的常用属性介l?/p>
/***相对布局用的是跟U性或表格布局不同的布局方式Q它布局采用控g的相对位|来q行讄。具体参数参?font face="DejaVu Serif, serif">SDK或者视?font face="DejaVu Serif, serif">***/
01-12-Android常见控gQ二Q?/p>
1Q?font face="DejaVu Serif, serif">RadioGroup?font face="DejaVu Serif, serif">RadioButton的用方?/p>
2Q?font face="DejaVu Serif, serif">CheckBox的用方?/p>
3Q?font face="DejaVu Serif, serif">Toast的基本用?/p>
/***
大致介绍了三U控Ӟ
RadioGroup&&RadioButton 单选框
CheckBox 复选框
toastQ(吐司Q感觉就是小型提C框Q?/p>
A toast is a view containing a quick little message for the user.
***/
01-13-常用控gQ三Q?/p>
1Q?font face="DejaVu Serif, serif">ProgressBar的用方?/p>
2Q?font face="DejaVu Serif, serif">ListView的用方?/p>
/***
介绍了进度条和列表视囄实现ҎQ这两个是比较复杂的控g,其中ListView涉及AdaptorQ在使用之前要好好参看视频和SDK Documentation
***/
01-14-Handler的用(一Q?/p>
1Q?font face="DejaVu Serif, serif">Handler的基本概?/p>
2Q?font face="DejaVu Serif, serif">Handler的基本用方?/p>
3Q?font face="DejaVu Serif, serif">Handler更新ProgressBar
/***
Q?font face="DejaVu Serif, serif">1Q?font face="DejaVu Serif, serif">A
Handler allows you to send and process Message
and Runnable objects associated with a thread's MessageQueue
.
Each Handler instance is associated with a single thread and that
thread's message queue. When you create a new Handler, it is bound to
the thread / message queue of the thread that is creating it -- from
that point on, it will deliver messages and runnables to that message
queue and execute them as they come out of the message queue.
一?font face="DejaVu Serif, serif">Handler允许你送出或者处?font face="DejaVu Serif, serif">Message和关联着一个线E消息队列的Runnable对象。每一?font face="DejaVu Serif, serif">Handler实力都联pd一一个线E和它的消息队列。当你创Z?font face="DejaVu Serif, serif">Handler的时候,他必ȝ定到那个创徏它的U程的或者他的消息队列上面——从那之后,他会传递信息和Runnable到消息队列和在他们从消息对列出来的时候执行他们。(目前我理解成Handler是一个操作台Q而且只能唯一l定一个线E和它的消息队列的。)
Q?font face="DejaVu Serif, serif">2Q?font face="DejaVu Serif, serif">Mars老师l出的参考代码时?font face="DejaVu Serif, serif">Handler操作一条进度条Q中间涉及到?font face="DejaVu Serif, serif">Runnable和消息队列的通信问题。通信的时候有arg1,arg2两个intcd的变量,可以减少pȝ的消耗?/p>
***/
01-15-Handler的用(二)
1Q?font face="DejaVu Serif, serif">Handler与线E?/p>
2Q?font face="DejaVu Serif, serif">Bundle的用?/p>
3Q在新线E当中处理小的的Ҏ
/***
Q?font face="DejaVu Serif, serif">1Q在之前的例子中Q如果直接用handler.post(Runnable)Ҏ启动Runnable对象Q?font face="DejaVu Serif, serif">Android默认不会创徏新的U程。而是直接?font face="DejaVu Serif, serif">Runnable?font face="DejaVu Serif, serif">run()Ҏ攑օCU程的之星队列当中去?/p>
Q?font face="DejaVu Serif, serif">2Q如果想真正实现两个U程的ƈ行运行,Mars老师演示了两U方法,W一U是?font face="DejaVu Serif, serif">Java中用Thread t = new Thread(Runnable)?font face="DejaVu Serif, serif">t.start()来启动新的线E。不知道Z什么样的原因(估计是这样做比较消耗内存)Q所?font face="DejaVu Serif, serif">Mars老师推荐的是另外一U方法—?font face="DejaVu Serif, serif">looperQ但一般不会直接创?font face="DejaVu Serif, serif">LooperQ而是使用?font face="DejaVu Serif, serif">HandlerThread(Looper)来创Z个与Lopper兌?font face="DejaVu Serif, serif">HandlerThread实例Q然后HandlerThread.start()Q那?font face="DejaVu Serif, serif">Looper启动v来了Q然后?font face="DejaVu Serif, serif">sendToTarget来触?font face="DejaVu Serif, serif">Handler中间?font face="DejaVu Serif, serif">handleMessageҎ可以实现线E了。(思\有点乱,具体再看视频吧)
Q?font face="DejaVu Serif, serif">3Q?font face="DejaVu Serif, serif">BundleQ目前理解成是一个简化的map可以了Q简化是?font face="DejaVu Serif, serif">Bundle的键只能是字W串而且对应的g般是primitiveQ?font face="DejaVu Serif, serif">map的键值都?font face="DejaVu Serif, serif">ObjectQ,常用于传递一捆数据?/p>
***/
01-16-SQLite使用Ҏ
1Q?font face="DejaVu Serif, serif">SQLite介绍
2Q?font face="DejaVu Serif, serif">SQLiteOpenHelper的用?/p>
3Q?font face="DejaVu Serif, serif">adb讉KSQLite
4Q增Q删Q改Q查
/***
׃本hҎ据库不太了解Q而且暂时也拍不上什么用场,q节视频先蟩q?/p>
***/
01-17-调试E序
1Q?font face="DejaVu Serif, serif">DDSMQ?font face="DejaVu Serif, serif">Dalvik Debug Monitor ServiceQ的使用
2Q常用程序调试方?/p>
/***
大致学习了如何利?font face="DejaVu Serif, serif">logcat?font face="DejaVu Serif, serif">DDSM调试E序Q?font face="DejaVu Serif, serif">DDSM视图中可以重启失去链接之后的虚拟机,以及对虚拟机q行数据导入导出工作Q最牛掰的是当虚拟机q接断掉之后可以在这里重?font face="DejaVu Serif, serif">adb来解决问题。利?font face="DejaVu Serif, serif">logcat可以提取应用q行q程中的信息Q根据重要程度分成五个档位而且向下兼容Q。?font face="DejaVu Serif, serif">Android提供?font face="DejaVu Serif, serif">Log.d()Ҏl合适当?font face="DejaVu Serif, serif">filter可以处理条是信息?/p>
***/
ListActivityQ?/p>
一Q相x늮介(译自官Ҏ档的class overviewQ?/p>
An activity that displays a list of items by binding to a data source such as an array or Cursor, and exposes event handlers when the user selects an item.
ListActivity hosts a ListView object that can be bound to different data sources, typically either an array or a Cursor holding query results. Binding, screen layout, and row layout are discussed in the following sections.
ListActivity是一个用于通过l定到诸?font face="DejaVu Serif, serif">array?font face="DejaVu Serif, serif">Cursor{?font face="DejaVu Serif, serif">data sourceq列一pditemQ当用户选中一?font face="DejaVu Serif, serif">item的时候,会传?font face="DejaVu Serif, serif">event handler?/span>
ListActivity拥有一个可以绑定到data sourceQ尤其指带有query result?font face="DejaVu Serif, serif">array?font face="DejaVu Serif, serif">CursorQ的ListView对象? Binding,screen layout?font face="DejaVu Serif, serif">row在下面讨论?/span>
Q?font face="DejaVu Serif, serif">1Q?font face="DejaVu Serif, serif">screen layout
ListActivity has a default layout that consists of a single, full-screen list in the center of the screen. However, if you desire, you can customize the screen layout by setting your own view layout with setContentView() in onCreate(). To do this, your own view MUST contain a ListView object with the id "@android:id/list" (or list if it's in code)
Optionally, your custom view can contain another view object of any type to display when the list view is empty. This "empty list" notifier must have an id "android:empty". Note that when an empty view is present, the list view will be hidden when there is no data to display.
ListActivity有唯一一个充满整?font face="DejaVu Serif, serif">screenq位?font face="DejaVu Serif, serif">screen正中?font face="DejaVu Serif, serif">list的默?font face="DejaVu Serif, serif">layout。当Ӟ如果你想的话Q你可以?font face="DejaVu Serif, serif">onCreate()里面?font face="DejaVu Serif, serif">setContentView()来透过讄自己?font face="DejaVu Serif, serif">layout来定制这?font face="DejaVu Serif, serif">screen layout。如果你要这样做Q你定制?font face="DejaVu Serif, serif">layout里面务必要包含一?font face="DejaVu Serif, serif">ListView?font face="DejaVu Serif, serif">objectQ而且它的id必须?#8220;@android:id/list”Q括号里面没看懂什么意思)
另外Q你定制?font face="DejaVu Serif, serif">view可以包含另外一个Q何种cȝview对象Q当list view为空的时候它会显现出来,cM圎ͼ它的id必须?#8220;@id/android:empty”?/font>
Q?font face="DejaVu Serif, serif">2Q?font face="DejaVu Serif, serif">row layoutQ?/p>
You can specify the layout of individual rows in the list. You do this by specifying a layout resource in the ListAdapter object hosted by the activity (the ListAdapter binds the ListView to the data; more on this later).
A ListAdapter constructor takes a parameter that specifies a layout resource for each row. It also has two additional parameters that let you specify which data field to associate with which object in the row layout resource. These two parameters are typically parallel arrays.
Android provides some standard row layout resources. These are in the R.layout class, and have names such as simple_list_item_1, simple_list_item_2, and two_line_list_item. The following layout XML is the source for the resource two_line_list_item, which displays two data fields,one above the other, for each list row.
你可以制?font face="DejaVu Serif, serif">list每一个单独的row?font face="DejaVu Serif, serif">layout。当你这样做Ӟ你可以通过讄ListAdapter对象来决定用哪?font face="DejaVu Serif, serif">layout resource。一?font face="DejaVu Serif, serif">ListAdapter?font face="DejaVu Serif, serif">constructor臛_讄一?font face="DejaVu Serif, serif">parameter来设?font face="DejaVu Serif, serif">layout resource。同时它有着两个additonal parameter让你制定哪些data field应该对应到哪?font face="DejaVu Serif, serif">layout resource中的对象中去。这两个parameter通常?font face="DejaVu Serif, serif">parallel arrayQ我理解成一一对应的两个数l,比如?font face="DejaVu Serif, serif">key-value pair是一U?font face="DejaVu Serif, serif">parallel arrayQ具体参看下面样例代码中?font face="DejaVu Serif, serif">SimpleAdapter的定义过E,׃个参敎ͼ其中W三个时上面说的哪个讑֮layout resource的参敎ͼ最后两个就是那?font face="DejaVu Serif, serif">parallel array了)
android提供了一些标准的row layout resource。他们在R.layoutc里面,比如_
Simple_list_item_1 每项有一?font face="DejaVu Serif, serif">TextView
Simple_list_item_2 每项有两?font face="DejaVu Serif, serif">TextView
Simple_list_item_checked ?font face="DejaVu Serif, serif">CheckView的项
Simple_list_item_multiple_choise 每项有一?font face="DejaVu Serif, serif">TextViewq可以多?/font>
Simple_list_item_single_choice 每项有一?font face="DejaVu Serif, serif">TextViewQ但只能q行单选?/font>
Q?font face="DejaVu Serif, serif">3Q?font face="DejaVu Serif, serif">Binding to dataQ?/p>
You
bind the ListActivity's ListView object to data using a class that
implements the ListAdapter
interface. Android provides two standard list adapters: SimpleAdapter
for static data (Maps), and SimpleCursorAdapter
for Cursor query results.
你需要通过一?font face="DejaVu Serif, serif">implement?font face="DejaVu Serif, serif">ListAdapter接口的类来把ListActivity?font face="DejaVu Serif, serif">ListView objectl定?font face="DejaVu Serif, serif">data上?font face="DejaVu Serif, serif">Android提供了两个标准的list adapters:针对static data(maps)使用?font face="DejaVu Serif, serif">Simple Adapter和针?font face="DejaVu Serif, serif">Cursor query result使用?font face="DejaVu Serif, serif">SimpleCursorAdapter?/font>
二,零:
android:drawSelectorOnTop 默认?font face="DejaVu Serif, serif">falseQ而且?font face="DejaVu Serif, serif">true的时候颜色会把选项菜单中的字给盖住。(原文是:When set to true, the selector will be drawn over the selected item. Otherwise the selector is drawn behind the selected item.Q?/p>
三,个h的理解和样例代码:
单来_ListActivity是一个捆l了List?font face="DejaVu Serif, serif">ActivityQ但是他比普通的Activity上外加一?font face="DejaVu Serif, serif">List的徏立过E要单得多?/p>
普通的Activity要添?font face="DejaVu Serif, serif">ListQ首先要?font face="DejaVu Serif, serif">layout文g中定义一?font face="DejaVu Serif, serif">ListViewQ但ListActivity里面则可以连setContentView()都不用写Q?font face="DejaVu Serif, serif">Androidpȝ会自动给你分配一个占据全屏幕?font face="DejaVu Serif, serif">List对象。另外,在设|?font face="DejaVu Serif, serif">ListAdapter的时候,pȝ提供了一些默认的布局Q比?font face="DejaVu Serif, serif">simple_list_item_2{)Q可以省去自定义List布局的功夫(当然有必要的时候也是可以自定义List的布局的)?/p>
M来说Q?font face="DejaVu Serif, serif">ListActivity是Z?font face="DejaVu Serif, serif">List建立q程而提供的一?font face="DejaVu Serif, serif">Activity的子cR?/p>
下面是我自己试的代码。(没有layout文g因ؓ用不上~Q?/p>
能力有限Q先写到q里了?/font>
另外可以参看文章Q?/font>
http://blog.csdn.net/xlfb8057/archive/2008/09/04/2880347.aspx
2010.12.03
@OverrideQ?/font>在子cd现父cȝҎӞ在前一行添?font face="DejaVu Serif, serif">@Override标记是很有好处的Q当敲错Ҏ名的时候,~译器会报错?/p>
2010.12.05
AVD for Android Virtual Device
SDK for Software Development Kit
API for Application Programming Interface
GUI for Graphical User Interface
2010.12.09
一Q关?font face="DejaVu Serif, serif">activity:
1Q属?font face="DejaVu Serif, serif">android.app.Activity?/p>
2Q?font face="DejaVu Serif, serif">An activity is a single, focused thing that the user can do. zd是一个单独的Q能获得焦点的能与用戯行交?font face="DejaVu Serif, serif">(interact)的东ѝ?/p>
3Q?font face="DejaVu Serif, serif">onCreate(Bundle)
is where you initialize your activity. Most importantly, here you
will usually call setContentView(int)
with a layout resource defining your UI, and using findViewById(int)
to retrieve the widgets in that UI that you need to interact with
programmatically.
其中一个常用(必需Q)的方法是onCreate(Bundle)Q在其中会调用到setContentView(int)链接?font face="DejaVu Serif, serif">res中的layout或者其他资源(xmlQ)。另外,findViewById(int)用于?font face="DejaVu Serif, serif">UI中的lgQ专业名词ؓcomponentQ也可通称?font face="DejaVu Serif, serif">widgetQ,q行建立触发器(监听器?listenerQ等操作?/p>
4Q?font face="DejaVu Serif, serif">To
be of use with Context.startActivity()
,
all activity classes must have a corresponding <activity>
declaration in their package's
AndroidManifest.xml
.建立每个zd之后需要在AndroidManifest.xml中注册才能用?/p>
5Q?font face="DejaVu Serif, serif">onCreateOptionsMenu(Menu menu)
Initialize the contents of the Activity's standard options menu.用于建立标准的选项菜单Q?font face="DejaVu Serif, serif">android上按?font face="DejaVu Serif, serif">menu键进入)public boolean onOptionsItemSelected
This hook is called whenever an item in your options menu is selected.用于q一步徏立选项菜单的内部选项
二,What is the differences and conections among Activity, Intent and View?
1Q?font face="DejaVu Serif, serif">An activity is a single, focused thing that the user can do. zd是一个单独的Q能获得焦点的能与用戯行交?font face="DejaVu Serif, serif">(interact)的东ѝ?/p>
2Q?font face="DejaVu Serif, serif">An
intent is an abstract description of an operation to be performed. It
can be used with startActivity
to launch an Activity
.
Intent是一个抽象的描诉Q意囑ց什么事Q目前来说我不太理解q个概念Q,它可以用形如startActivity(new Intent(this, **))的语句来启动一个新?font face="DejaVu Serif, serif">Activity?/p>
3Q?font face="DejaVu Serif, serif">ViewQ?font face="DejaVu Serif, serif">This class represents the basic building block for user interface components. A View occupies a rectangular area on the screen and is responsible for drawing and event handling. View is the base class for widgets, which are used to create interactive UI components (buttons, text fields, etc.)
我暂时的理解?#8220;视图”?font face="DejaVu Serif, serif">View?font face="DejaVu Serif, serif">UI的最基本创徏版块Q占领一个方形区域用于绘制图形和攄事g的句柄——组件的基本c,常用于徏立可交互lgQ按钮,文本域)?/p>
4Q目前关于这三者的关系Q我理解是:application的基本单位应该是Activity——applicationp许多多的彼此独立Activity构成?font face="DejaVu Serif, serif">Activity的一个重要特性是它要跟用户生交互,而交互的关键在于Acitivity里面有许许多多的viewQ?font face="DejaVu Serif, serif">view不仅仅是一个静态的视图Q我们可以在View上注册诸如按钮,对话框等交互lg。在Activity中我们经常利?font face="DejaVu Serif, serif">findViewById来查扑֯应的交互lg(或者说交互lg是view自nQ?font face="DejaVu Serif, serif">)来添?font face="DejaVu Serif, serif">listener.那么Intent又是什么?Intent我翻译成意图Q目前我只感觉它是一个由一?font face="DejaVu Serif, serif">Activity跌{到另一?font face="DejaVu Serif, serif">Activity的媒介——因为有了这样那L“意图”Q所以我们需要从目前?font face="DejaVu Serif, serif">Activity跛_另外一个才能相应那?#8220;意图”——目前我是这L解的Q不q按文档来说Intent有着更加深厚的意义,那个以后遇上再说吧?/p>
三,label?font face="DejaVu Serif, serif">title的差别?
都是?font face="DejaVu Serif, serif">R下的@string里面的条目,目前来说感觉label是一个短标记后面一般不跟其他东西,title下会跟着其他内容Q?font face="DejaVu Serif, serif">textQ?font face="DejaVu Serif, serif">label什么的都可以。)
四,最后要提到的一点,Eclipse的包的自动补全功?/strong>Ctrl+Shift+O。(一定要C阿,相当好用Q?/strong>
2010.12.10
一Q?font face="DejaVu Serif, serif">magin?font face="DejaVu Serif, serif">padding的差别?
对于一?font face="DejaVu Serif, serif">borderQ边框)来说Q?font face="DejaVu Serif, serif">margin是外边距Q?font face="DejaVu Serif, serif">padding是内边距?/font>
2010.11.12
一Q什么是contextQ?/font>
contextQ?/span>Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.
contextQ语境?Q是一个关于应用环境的全局信息的接口,?font face="DejaVu Serif, serif">androidpȝ来负责实现。它可以q行启动Activity和接?font face="DejaVu Serif, serif">intents{操作?/font>
?font face="DejaVu Serif, serif">,关于view的一点细?/font>
不要?font face="DejaVu Serif, serif">view的构造函C试图使用view的高度和宽度Q那是因为那时?font face="DejaVu Serif, serif">Androidq不知道视图的大(当时宽度和高度都默认?font face="DejaVu Serif, serif">0Q—?font face="DejaVu Serif, serif">Android在布局阶段才会计算宽度和高度——那是在构造函数被调用之后而Q何对象被l制之前?/font>
在视囄宽度和高度已知后Q会通知onSizeChangedҎQ因而可以在其中引用view的宽度和高度。另一U引用的Ҏ是在诸如onDraw()的方法中?font face="DejaVu Serif, serif">getWidth()?font face="DejaVu Serif, serif">getHeight()获取宽度和高度?/font>
2010.11.14
一Q关?font face="DejaVu Serif, serif">Eclipse的一些常用快捷键
ctrl+shift+o 自动补全包,相当好用
ctrl+1 易提C改成错误的Ҏ
alt+/ 自动补全参数名,cdQ方法名Q巨好用
ctrl+/ l选中范围注释Q再按一ơؓ消除注释
ctrl+o 昄cd前承结?/font>
ctrl+shift+f l选中内容q行自动排版?/font>
二,实现[Android开发视频教?font face="DejaVu Serif, serif">].01_05_Activity?font face="DejaVu Serif, serif">Intent 的代码时遇到的错误:
Q?font face="DejaVu Serif, serif">1Q错误:R.id.one是一?font face="DejaVu Serif, serif">EditTextQ我企图直接?font face="DejaVu Serif, serif">String one = getText(R.id.one).toString()来直接把它的D予给one。结果是弹出异常?/font>
Ҏ办法Q正代码如下:EditText textOne = (EditText)findViewById(R.id.one);String one = textOne.getText().toString();
卛_建立一个名?font face="DejaVu Serif, serif">textOne?font face="DejaVu Serif, serif">EditTextQ然后用getText()Ҏ得到它的内容?/font>
Q?font face="DejaVu Serif, serif">2Q错误:企图直接?font face="DejaVu Serif, serif">setText(answer)Ҏ来直接输?font face="DejaVu Serif, serif">answerQ?font face="DejaVu Serif, serif">ansser是个int变量Q?/font>
Ҏ办法Q代码改写成setText(answer + “”);卛_Q根?font face="DejaVu Serif, serif">Java语法Q?font face="DejaVu Serif, serif">int+Stringcd自动转换?font face="DejaVu Serif, serif">StringcdQ补充一句是setText()里面的内容只能是Stringcd的东西)
2010.11.15
一Q关?font face="DejaVu Serif, serif">BundleQ?/font>
A mapping from String values to various Parcelable types.
一个从字符值到各种可打包类型的映射?/font>
Q目前就?font face="DejaVu Serif, serif">onCreate(Bundle savedInstanceState)看到q,理解成一捆数据么Q)
二,this?font face="DejaVu Serif, serif">super指针用法Q?/font>
this概述Q在生成一个对象的时候,pȝ会自动生成一个指?font color="#800000">对象?font face="DejaVu Serif, serif">this指针Q所?font face="DejaVu Serif, serif">this指针是不会指向静态类的?/font>
用法Q(1Q在Ҏ中存在该对象的同名实例变量,需要用“this.实例变量?#8221;来引用实例变量?/font>
Q?font face="DejaVu Serif, serif">2Q在Ҏ中需要应用到对象自n的时候,? ”cd.this“来进行引用?/font>
Q?font face="DejaVu Serif, serif">3Q可以在构造函C直接?#8220;this(参数?font face="DejaVu Serif, serif">)” 来调用自w构造函敎ͼ有时候可以简化代码?/font>
super概述Q在l承关系中,super指向子类?font color="#800000">父类?/font>
用法Q(1Q在子类中引用父cȝ同名实例变量Ӟ?#8220;super.实例变量?#8221;引用父类的变量?/font>
Q?font face="DejaVu Serif, serif">2Q在子类的构造函C?font face="DejaVu Serif, serif">super.构造函数名()调用父类的构造函数。(只能攑֜构造函数的W一行)
Q?font face="DejaVu Serif, serif">3Q在子类中引用父cȝ同名ҎӞ?#8220;super.Ҏ?font face="DejaVu Serif, serif">(参数?font face="DejaVu Serif, serif">)”引用父类的方法?/font>
三,Eclipse中又两个个好用的快捷键:
F3Q快速定位当前选中的自定义ҎQ自定义变量名的原出处?/font>
F4Q快速展开选中cȝl承层次?/font>