自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

第一個(gè)Android 程序的源代碼: TxtReader文本閱讀器

移動(dòng)開(kāi)發(fā) Android

剛學(xué)習(xí)Android開(kāi)發(fā)的時(shí)候, 試著開(kāi)發(fā)了一個(gè)閱讀器,非常簡(jiǎn)單,所以易懂, 目前在本人的G1上跑得還是不錯(cuò)的

 

^-^

 

 

貢獻(xiàn)出來(lái)給入門(mén)者參考:

 

主要問(wèn)題:

 

1. 如何處理cancel事件

 

2. ListAdapter的使用

 

3. 文本編碼.

 

資源下載地址:

 

http://download.csdn.net/source/1713476

 

剛?cè)胧值耐瑢W(xué)可能在導(dǎo)入Android的工程或者某些sample的時(shí)候無(wú)從下手,

 

因?yàn)閱螁慰縀clipse import project解決不了所有的問(wèn)題。***方案為通過(guò)Eclipse 的向?qū)В?將已經(jīng)存在的代碼工程,

 

再創(chuàng)建成一個(gè)新的工程, 如圖所示的: create project from existing source選項(xiàng)

 

利用已經(jīng)存在的代碼工程重新創(chuàng)建新工程

 

 

為了方便大家入門(mén),今天對(duì)代碼做一下標(biāo)注.

 

1. Android程序的進(jìn)入點(diǎn)

 

不要妄圖像學(xué)習(xí)C或者Java的入門(mén)一樣, 有一個(gè)main函數(shù)供你進(jìn)入, Android的應(yīng)用程序運(yùn)行在一個(gè)框架中, 因此main進(jìn)入點(diǎn) 函數(shù)被層層包裹,探尋這個(gè)進(jìn)入點(diǎn)函數(shù),實(shí)在是沒(méi)有多大的價(jià)值(這就跟我們用Visual c++去寫(xiě)MFC程序一樣, 看到的不是main函數(shù), 唯有寂寞...)

 

Android框架做得比較精妙:

 

1. 應(yīng)用的各個(gè)功能,都被切割成一個(gè)個(gè)的Activity對(duì)象

2. Activity都在AndroidManifest.xml這個(gè)xml中注冊(cè), 并且規(guī)定那個(gè)Activity是啟動(dòng)Activity

3. Activity 之間是可以通信的

 

 

 

 

以本文的代碼為例, AndroidManifest.xml是這樣的:

 

 

  1.  <application android:icon="@drawable/reader" android:label="@string/app_name">  
  2.      <activity android:name=".TxtReader"  
  3.                android:label="@string/app_name">  
  4.          <intent-filter>  
  5.              <action android:name="android.intent.action.MAIN" />  
  6.              <category android:name="android.intent.category.LAUNCHER" />  
  7.          </intent-filter>  
  8.      </activity>  
  9.      <activity android:name=".ListAllFileActivity" android:label="@string/app_name">  
  10. <intent-filter>  
  11.     <action android:name="com.ostrichmyself.txtReader.ListAllFileActivity" />  
  12.     <category android:name="android.intent.category.DEFAULT" />  
  13. </intent-filter>  
  14. lt;/activity>  
  15. <activity android:name=".ViewFile" android:label="@string/swich_code">  
  16. <intent-filter>  
  17.     <action android:name="com.ostrichmyself.txtReader.ViewFile" />  
  18.     <category android:name="android.intent.category.DEFAULT" />  
  19. </intent-filter>  
  20. lt;/activity>  
  21.  </application>  

 

 

很好奇,為什么會(huì)有三個(gè)Activity? 大致的思路是這樣的:

1. 進(jìn)入應(yīng)用程序的時(shí)候,需要有一個(gè)Button,選擇一個(gè)目錄

2. 瀏覽目錄

3. 選中文件的瀏覽目錄之后,需要呈現(xiàn)Txt文件的內(nèi)容

 

可能大家會(huì)覺(jué)得奇怪, 為什么按照這樣的思路去劃分Activity,這樣會(huì)不會(huì)造成管理Activity的困難?

回答這個(gè)疑問(wèn)前, 看看Activity的劃分標(biāo)準(zhǔn)是什么,這里牽涉到界面的知識(shí):

1. 每個(gè)Activity都表征了一種形式的界面, 比如你的應(yīng)用程序中有多少個(gè)不同的界面,就將出現(xiàn)多少個(gè)不同的Activity

2. Activity通過(guò)加載一個(gè)界面文件xml, 來(lái)表征界面的特點(diǎn)

為什么要這么做?

原因是,界面的繪制牽涉到系統(tǒng)資源的調(diào)配,手機(jī)終端不同于PC,手機(jī)系統(tǒng)資源緊缺, 銷毀重繪這樣耗時(shí)費(fèi)勁的工作,不宜重復(fù)進(jìn)行。因此Android中將這些不同的界面綁定到不同的Activity中,當(dāng)手機(jī)由一種風(fēng)格的Activity切換到另外風(fēng)格的Activity時(shí),節(jié)省時(shí)間和系統(tǒng)資源。

 

程序如何實(shí)現(xiàn)Activity的切換?切換時(shí),如何夾帶信息?

 

  1. protected void onListItemClick(ListView l, View v, int position, long id) {  
  2.         Intent intent = new Intent(ListAllFileActivity.this, ViewFile.class);  
  3.         bundle = new Bundle();  
  4.         File file = fileNameList.get(position);  
  5.         if (file.isDirectory())  
  6.         {  
  7.             File[] f = file.listFiles();  
  8.             fill(f);  
  9.         }  
  10.         else {  
  11.             bundle.putString(fileNameKey, file.getAbsolutePath());  
  12.             intent.putExtras(bundle);  
  13.             startActivityForResult(intent, 0);  
  14.         }  
  15.     }  

 

 

Intent構(gòu)造下一個(gè)將要出現(xiàn)的Activity, 并夾帶 Bundle(); 然后Activity類中提供了startActivityForResult的方法,讓你啟動(dòng), 夠簡(jiǎn)單吧!

 

在將要啟動(dòng)的Activity中oncreate方法啟動(dòng),將Bundle的值取出來(lái), 搞定.

 

整個(gè)流程大致可以這樣描述:

 

                       Bundle
Activity被觸發(fā)---------------> 加載Bundle -----> 加載GUI及其Layout(XML或者自己寫(xiě)Layout)

----> 展示GUI----> 觸發(fā)GUI事件 ---> 其他Activity 被觸發(fā)----> 繼續(xù)....

 

菜單布局等細(xì)節(jié), 實(shí)在沒(méi)什么更多的內(nèi)容。

 

Android的布局方式很贊,采用了HTML的配置布局方式,非常不錯(cuò), 界面本來(lái)就是配的,而不是代碼寫(xiě)的。 所以J2ee轉(zhuǎn)業(yè)過(guò)來(lái)的同學(xué)們, 這個(gè)難度實(shí)在是太小了。

 

另外從Eclipse RCP開(kāi)發(fā)過(guò)來(lái)的同學(xué)們, plugin.xml這個(gè)是再熟悉不過(guò)的了, 所以你們轉(zhuǎn)過(guò)來(lái)學(xué)習(xí)Android的布局和配置管理,應(yīng)該也是輕松加愉快了。

 

后面深入補(bǔ)充下Activity的知識(shí)。 界面這塊,有時(shí)間再探索下。

責(zé)任編輯:冰凝兒 來(lái)源: http://blog.csdn.net/ostrichmyself/article/details
相關(guān)推薦

2013-10-30 22:10:28

Clouda程序

2022-09-27 18:31:42

Komikku開(kāi)源日漫閱讀器

2011-06-14 15:32:26

Android視頻教程

2013-06-14 17:16:44

WP開(kāi)發(fā)Windows PhoWP應(yīng)用

2009-06-26 16:07:43

MyEclipse開(kāi)發(fā)Hibernate程序

2012-05-25 15:20:38

XNA

2023-05-19 08:49:58

SQLAlchemy數(shù)據(jù)庫(kù)

2024-06-07 08:59:35

2024-03-13 13:53:10

C++程序開(kāi)發(fā)

2010-03-25 16:04:56

Python程序執(zhí)行

2013-12-19 09:46:04

垃圾收集器

2017-04-11 13:31:40

閱讀器開(kāi)源RSS

2019-12-31 08:00:00

DebianLinuxApple Swift

2023-06-01 08:24:08

OpenAIChatGPTPython

2011-06-08 10:01:36

Windows Pho 應(yīng)用程序

2022-11-01 07:23:55

Dockernetcore程序

2011-06-08 10:24:38

Windows Pho 應(yīng)用程序

2011-06-24 13:38:32

QT 編譯 安裝

2022-07-20 10:02:34

代碼開(kāi)發(fā)閱讀

2022-10-17 10:28:05

Web 組件代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)