android SDK中提供了TabHost使用起來很方便, 但是當tab比較多的時候,就會擠在一起,而不能橫向的滾動比較麻煩.
于是我嘗試的制作了一個簡單的使用Gallery來代替TabHost的例子, 確實夠簡單的,自娛自樂.....僅供參考

使用BroadcastReceiver來切換不同的Tab
public class ChangeTabBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int index = intent.getExtras().getInt(CURRENT_TAB_INDEX);
Log.i(TAG, "onReceive index = " + index);
// setCurrentTab(index);
topBar.setSelection(index);
startGroupActivity(titleList.get(index).toString(),
(Intent) intentList.get(index));
}
}
沒有詳細研究SDK中的TabHost實現機制, 使用起來還是有些不方便的地方
public class GalleryTabActivityDemo extends GalleryTabactivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setDelegate(new SliderBarActivityDelegateImpl());
for (int i = 0; i < 14; i++) {
Intent intent;
if (i % 2 == 0)
intent = new Intent(this, DemoActivity1.class);
else
intent = new Intent(this, DemoActivity2.class);
this.addTab("title" + i, android.R.drawable.star_on, intent);
}
//必須在addTab后調用commit, 有點麻煩, 將來會找更好的辦法
super.setup();
}
//可自定義切換tab時觸發的操作
private class SliderBarActivityDelegateImpl extends
SliderBarActivityDelegate {
protected void onTabChanged(int tabIndex) {
Log.d("onTabChanged", "" + tabIndex);
}
}
}
最近工作比較忙,沒太多時間學習android,將來會慢慢改善, 先湊合用, 拋塊磚先, 各位有玉的使勁砸, 金條也行
下載
posted @
2010-05-13 15:46 小強 閱讀(2158) |
評論 (0) |
編輯 收藏
學習android的練習小軟件.
制作文件管理器的初衷是發現G1上并沒有隨系統附帶文件瀏覽軟件,
考慮到電子書,媒體播放器或其它一些軟件會使用到文件瀏覽,選擇文件或文件夾, 所以先做了這個文件管理工具并封裝一些參數供第三方程序調用
應用很簡單, 只是把手機和SD卡中的文件列出來, 支持圖片和mp3的簡單預覽. 未來會有更多的功能擴充進來. 歡迎大家試用并提出意見.
--------------------------------------------------------4月更新0.3版
--------------------------------------------------------------------
自從上次更新后工作太忙,半年沒玩兒ANDROID了, 最近剛剛閑下來, 繼續完善文件管理器
順便封裝了一些其它的widget, 整理后再發上來
看著網上鋪天蓋地的各種android應用, 再看看我這個小破軟件, 實在有點拿不出手, 但既然做了就得不斷完善下去
目標是做一個封裝widget的集合, 方便開發者使用
1, 使用線程和handler message機制讀取文件列表, 提升軟件性能
2, 解決文件列表多次滾動后速度下降的問題
3, 打開文件使用手機關聯的應用
4, 增加文件縮略圖顯示


--------------------------------------------------------10月27日更新0.2版
--------------------------------------------------------------------
1. 0.2版主要增加了一些使用者的功能, 增加了收藏夾功能, 方便用戶快速的瀏覽到經常訪問的文件或文件夾
2. 修改了一些for developer的bug


-------------------------------------------------------- 0.1版
--------------------------------------------------------------------



-------------------------------------------------------------------- for
developer
--------------------------------------------------------------------
G1上并沒有隨系統附帶文件瀏覽軟件, 考慮到電子書,媒體播放器或其它一些軟件會使用到文件瀏覽,選擇文件或文件夾,
所以先做了這個文件管理工具并封裝一些參數供第三方程序調用,可以做為插件形式使用
把文件管理器封裝起來并使用intent機制設置瀏覽參數和調用
目前暫不支持多文件選擇, 將在下一版中發布
調用程序示例
1
Button button2
=
(Button) findViewById(R.id.but2);
2
button2.setOnClickListener(testFileManager);
1
private
OnClickListener testFileManager
=
new
OnClickListener() {
2
public
void
onClick(View v) {
3
Intent intent
=
new
Intent(
"
net.uiiang.android.alkaid.FILEMANAGER
"
);
4
5
//
參數root_directory, 設置瀏覽的根目錄, 例如設置
/sdcard則只允許程序瀏覽sd卡中的內容, 當程序回退上層文件夾到/sdcard后不再向上回退
6
//
參數類型為字符串, 默認為"/"(根目錄)
7
intent.putExtra(
"
root_directory
"
,
"
/
"
);
8
9
//
參數exclude_directory, 設置不顯示的目錄, 例如設
置"/data", "/dev", 則"/data", "/dev"這兩個目錄不會顯示給用戶
10
//
參數類型為字符串數組, 默認不排除任何文件夾
11
intent.putExtra(
"
exclude_directory
"
,
12
new
String[] {
"
/data
"
,
"
/dev
"
});
13
14
//
參數thrid_party_call, 當第三方程序調用時, 必須設置
此參數為true, 否則下面幾個參數不起作用
15
//
參數類型為boolean, 默認為false, 會顯示以下參數可設置的
所有菜單(除 選擇菜單)
16
intent.putExtra(
"
thrid_party_call
"
,
true
);
17
18
//
參數directory_show_type, 目錄瀏覽方式
19
//
參數類型為 int, 默認為0
20
//
0 : 顯示文件和文件夾(默認)
21
//
1 : 只顯示文件
22
//
3 : 只顯示文件夾
23
intent.putExtra(
"
directory_show_type
"
,
0
);
24
25
//
參數use_menu_items, 設置顯示的預置菜單
26
//
參數類型為:int數組
27
//
菜單列表:
28
//
1 : 上下文菜單-打開 (文件夾)
29
//
2 : 上下文菜單-刪除
30
//
3 : 上下文菜單-詳細信息
31
//
4 : 上下文菜單-復制
32
//
5 : option菜單-粘貼
33
//
6 : option菜單-新建文件夾
34
//
99: 上下文菜單-選擇 , 若需要文件管理器返回一個選中的文件路
徑, 則必須設置此菜單
35
//
當用戶點擊此菜單后, 文件管理器退出并返回給調用程序一個字符串數
組, 數組中包含文件路徑信息
36
intent.putExtra(
"
use_menu_items
"
,
new
int
[] {
99
});
37
38
//
參數show_info_in_list, 是否在瀏覽文件中顯示簡單的
信息, 如文件夾中包含多少子文件夾和文件
39
//
默認為true
40
intent.putExtra(
"
show_info_in_list
"
,
false
);
41
42
//
參數show_file_extension, 是否顯示文件后綴名
43
//
默認為 true
44
intent.putExtra(
"
show_file_extension
"
,
false
);
45
46
//
參數use_simple_view, 是否使用簡單文件預覽
47
//
用戶單擊文件后可以簡單的預覽文件內容, 目前支持圖片和音樂文件
48
//
默認為 true
49
intent.putExtra(
"
use_simple_view
"
,
false
);
50
51
//
參數animation_show_list, 是否使用動態效果顯示文
件列表, 目前只支持向下卷簾式的效果
52
//
默認為true
53
intent.putExtra(
"
animation_show_list
"
,
true
);
54
55
//
參數mutiple_select, 是否支持多選, 為true可以一次
性選擇多個文件或目錄
56
//
默認為false
57
intent.putExtra(
"
mutiple_select
"
,
false
);
58
59
startActivityForResult(intent, SELECT_FILE);
60
}
61
};
通過startActivityForResult調用文件管理器, 并使用上下文菜單選擇文件或文件夾

點擊"選擇"后, 返回到調用程序
1
@Override
2
protected
void
onActivityResult(
int
requestCode,
int
resultCode, Intent data) {
3
super
.onActivityResult(requestCode, resultCode, data);
4
if
(requestCode
==
SELECT_FILE) {
5
if
(resultCode
==
RESULT_OK) {
6
//
參數名為selected_uri, 得到字符串數組中包含文件路徑
7
String[] selectArr
=
data.getExtras().getStringArray(
8
"
selected_uri
"
);
9
if
(selectArr
!=
null
) {
10
String selectFile
=
""
;
11
for
(String string : selectArr) {
12
System.out.println(
"
you select =
"
13
+
data.getExtras().getStringArray(
14
"
selected_uri
"
));
15
}
16
}
17
18
}
19
}
20
}

posted @
2010-05-05 17:10 小強 閱讀(338) |
評論 (0) |
編輯 收藏
摘要: 1. 0.2版主要增加了一些使用者的功能, 增加了收藏夾功能, 方便用戶快速的瀏覽到經常訪問的文件或文件夾
2. 修改了一些for developer的bug
閱讀全文
posted @
2009-10-27 16:05 小強 閱讀(1644) |
評論 (2) |
編輯 收藏
摘要: 為文件將來做電子書或媒體播放器等程序時瀏覽文件
把文件管理器封裝起來并使用intent機制設置瀏覽參數和調用
閱讀全文
posted @
2009-10-17 20:21 小強 閱讀(2669) |
評論 (2) |
編輯 收藏
摘要: 練習作品 一個簡單的 android 文件管理器, 支持第三方程序調用
閱讀全文
posted @
2009-10-17 19:50 小強 閱讀(1933) |
評論 (1) |
編輯 收藏
摘要: 為了體現出android強大的網絡功能 寫了一個小爬蟲程序, 通過網絡直接從網站上下載電子書
閱讀全文
posted @
2008-06-30 12:00 小強 閱讀(1379) |
評論 (0) |
編輯 收藏
摘要: 晚上等著看歐洲杯,閑來無賴接著研究android , 更新了一下uReader
閱讀全文
posted @
2008-06-18 12:46 小強 閱讀(1527) |
評論 (4) |
編輯 收藏
摘要: 閑來無事, 研究了一下android. 做一個小應用練手.
閱讀全文
posted @
2008-06-17 17:31 小強 閱讀(1886) |
評論 (4) |
編輯 收藏
摘要:
閱讀全文
posted @
2008-06-10 17:34 小強 閱讀(412) |
評論 (0) |
編輯 收藏
摘要: 刪除ANDROID數據庫
閱讀全文
posted @
2008-06-10 17:30 小強 閱讀(1908) |
評論 (0) |
編輯 收藏
摘要: android 技巧一, 快速顯示修改結果
閱讀全文
posted @
2008-06-03 17:44 小強 閱讀(356) |
評論 (0) |
編輯 收藏
摘要: device commands:
adb update DATAOPTS
- Flash the specified update file.
If file is not passed, update.zip is used.
adb push - copy file/dir to device
adb pull - copy file/dir from device
adb sync [ ] - copy host->device only if changed
(see 'adb help all')
adb shell - run remote shell interactively
閱讀全文
posted @
2008-06-03 17:36 小強 閱讀(1051) |
評論 (0) |
編輯 收藏
摘要: adb(Android Debug Bridge)是Android提供的一個通用的調試工具,借助這個工具,我們可以管理設備或手機模擬器的狀態。還可以進行以下的操作:
1、快速更新設備或手機模擬器中的代碼,如應用或Android系統升級;
2、在設備上運行shell命令;
3、管理設備或手機模擬器上的預定端口;
4、在設備或手機模擬器上復制或粘貼文件;
閱讀全文
posted @
2008-06-03 17:35 小強 閱讀(1504) |
評論 (0) |
編輯 收藏
摘要: Android是基于Linux內核的,對于喜歡研究底層的朋友來說,自然不會放過搞明白Linux層面上一些東西的機會。當然,最終目的還是要搞清楚Linux是如何和上層lib以及虛擬機結合的,但是這得等Google完全開源Android之后了。很多關于Linux運行的細節,都可以通過adb的shell來看到。 閱讀全文
posted @
2008-06-03 17:30 小強 閱讀(3580) |
評論 (1) |
編輯 收藏
大學 (一) http://www.tkk7.com/uiiang/archive/2007/05/27/120342.html
康誥曰:“克明德。”大甲曰:“顧諟天之明命。”帝典曰:“克明峻德。”皆自明也。
湯之盤銘曰:“茍日新,日日新,又日新。”康誥曰:“作新民。”詩曰:“周雖舊邦,其命惟新。”是故君子無所不用其極。
康誥說:“能夠弘揚光明的品德。”太甲說:“念念不忘這上天賦予的光明稟性。”堯典說:“能夠弘揚崇高的品德。”這些都是說要自己弘揚光明正大的品德。
商湯王刻在浴盆上的箴言說:“如果能夠有一天自新,就應保持天天自新,永遠不斷自新。”康誥中說:“鼓勵人們棄舊圖新。”詩經中說:“周朝雖然是古老的國家,但卻稟受了天命,自我更新。”所以,品德高尚的人無處不追求完善。
軟件開發乃至IT行業的更新速度極快,今天出個JAVA,明天出個.net,后天又來個什么ruby。所以咱們要不斷的學習,不斷的進步才能跟上技術的更新速度,才能不被淘汰。
但什么叫自新,這個自新不是說今天出了JAVA,呼啦呼啦的就全買thinking in java去了,明天出了.net又呼啦呼聽的全安.net 2005去了。自新是一個發掘和汲取的過程。別一天到晚的看不起struts嫌他麻煩,瞧不上hibernate嫌他浪費性能。人家的技術能在全世界流行,必然有過人之處。想想他為什么能在全世界流行,他體現的是哪種設計思想。多學學人家的優點,想辦法把這些優點用在自己的代碼上。
詩云:“邦畿千里,惟民所止。”詩云:“緡蠻黃鳥,止于丘隅。”子曰:“于止,知其所止,可以人而不如鳥乎!”
詩云:“穆穆文王,于緝熙敬止!”為人君,止于仁;為人臣,止于敬;為人子,止于孝;為人父,止于慈;與國人交,止于信。
詩經說:“京城及其周圍,都是老百姓向往的地方。”詩經又說:“‘緡蠻’叫著的黃鳥,棲息在山丘的角落上。”孔子說:“連黃鳥都知道它該棲息在什么地方,難道人還能不如一只鳥兒嗎?”
詩經說:“品德高尚的文王啊,為人光明磊落,做事始終莊重謹慎。”做國君的,要做到仁義;做臣子的,要做到恭敬;做子女的,要做到孝順;做父親的,要做到慈愛;與他人交往,要做到講信用。
經常看到論壇上有人抱怨,自己的工作單調只不過是復制粘貼別人的代碼。可你有沒有想過為什么去復制粘貼,是因為他的代碼寫得太好了,放到哪里都能用?還是架構設計得不合理,需要重構。如果是好,他好在哪里,他為什么這么寫。如果不好,又不好在哪里,應該怎么改,如果是你來設計,你又會怎么做來避免犯這樣的錯誤。
很多人抱怨自己在一個小公司不得志,可有沒有想過為什么在這種小公司。你有沒有給IBM,google這樣的公司投過簡歷,投了簡歷有沒有面試,面試了這些大公司為什么不要你,而是錄用了別人。要擺正心態,找到自己的位置。你可以覺得不得志,但要有真才實學。龐統那么大的才,到了劉備手下不還是先被發配去當縣令。是金子終要發光的,后來劉備不也終于認識到龐統的才能并委以重任嗎。可如果你啥都不會,看這個看不起,瞧那個瞧不上。一天到晚就知道上網聊天打游戲泡MM。就算到了曹營也就當個蔣干,成事不足敗事有余。要本著謙虛學習的態度來對待工作對待周圍的人,要學會從別人身上發現優點。
詩云:“瞻彼淇澳,菉竹猗猗。有斐君子,如切如磋,如琢如磨。瑟兮僩兮,赫兮喧兮。有斐君子,終不可諠兮!”如切如磋者,道學也;如琢如磨者,自修也;瑟兮僩兮者,恂栗也;赫兮喧兮者,威儀也;有斐君子,終不可諠兮者,道盛德至善,民之不能忘也。
詩經說:“看那淇水彎彎的岸邊,嫩綠的竹子郁郁蔥蔥。有一位文質彬彬的君子,研究學問像加工骨器一樣,不斷切磋;修煉自己像打磨美玉,反復琢磨。他莊重而開朗,儀表堂堂。這樣的一個文質彬彬的君子,真是令人難忘啊!”
這里所說的“加工骨器,反復琢磨”,是指做學問的態度;“像打磨美玉,反復琢磨”,是指自我修煉的精神;說他“莊重而開朗”,是指他內心謹慎而有所戒懼;說他“儀表堂堂”,是指他非常莊重;說“這樣一個文質彬彬的君子,真是令人難忘啊!”是指由于他品德非常高尚,達到了最完善的境界,所以使人難以忘懷。
不要為了工作而工作,為了寫代碼而寫代碼。既然干了這行了就要干好,即使不求名揚天下,至少要也對得起自己這么多年的努力吧。我帶過幾個手下,我每次安排任務后都會說:認真干活,只要干完活,你去打CS我都不管。我說這話的目的是不想給大家太多壓力,大家都挺辛苦都不容易。只要干完活,該聊天該上網隨便你。可如果真正會學習的人,就應該明白,自己干的那些活,永遠是別人安排的。要想多學東西,還得根據自己的特點和能力補充知識。自己寫的代碼是不是已經無懈可擊了,有什么地方值得優化,實現方法是不是可以用更優雅的方式。
總之,心中要想著不斷進步,要么不做,做了就要做到更好。
posted @
2007-05-29 13:05 小強 閱讀(1115) |
評論 (1) |
編輯 收藏
這兩三年來,生活一直被工作占據著,習慣了用工作來充實的生活,閑下來卻非常無聊。即使不加班的時候,回到家里也不知道干點什么好,于是下意識的又開始寫代碼,學新技術。這樣的生活單調乏味,人也變得無趣起來。于是決定,從今天起在家休息的時間,不再寫代碼。重新找回以前的興趣,豐富業余生活。想起以前上學時住校,閑得沒事做就到圖書館借書,反正呆著也是呆著,那會兒什么書都看,從古今中外概不排斥。可惜工作后再沒這閑心了。
今天休息,在家翻了翻書柜,讀一讀大學。藍色字是原文,紅色的字是我的一些理解,如果有錯的地方,還望大家指正,謝謝。
大學之道,在明明德,在親民,在止于至善。知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始,知所先后,則近道矣。
大學的宗旨在于弘揚光明正大的品德,在于使人棄舊圖新,在于使人達到最完善的境界。知道應達到的境界才能志向堅定;志向堅定才能夠鎮靜而不驕躁;鎮靜而不驕躁才能夠心安理得;心安理得才能夠思慮周詳;思慮周詳才能夠有所收獲。每樣東西都有根本和枝末,每件事都有開始和終結(還記得黑客帝國3里,先知說的那句話嗎?Everything that has a beginning has an end。大概先知也讀過大學)。明白了這本末始終的道理,就接近事物發展的規律了。
在軟件開發過程中,我們經常會遇到很多問題。其實每一個客戶需求都是一個大問題,是一堆問題的總合。這就需要我們在編程之前,明白自己要做什么(知止而后有定),要認真的分析我們的需求和目標。這樣才能不被一堆稀奇古怪的問題嚇倒,能夠讓我們從容的面對這些工作(定而后能靜)。初學者經常犯一個錯誤,就是不分析問題。調試出錯代碼的時候,經常是一遍一遍的運行錯誤的代碼,然后看著報錯信息發呆。而不知道如何分析錯誤所在,也不知道在哪里打印幾行標志來找出出錯的代碼的位置。于是越看越亂,越亂越心慌。這時候就需要先靜下心來不要被一個報錯信息嚇到(靜而后能安)。只有靜下心來,才能想到其實任何報錯信息,都是有根有據的,只要根據提示信息中給出的線索,或者在代碼中打印幾條標志信息,或者根據你輸入的信息運行的類或方法去推理,就能夠找到出錯的地方(安而后能慮)。當你做到這一步,你就找到問題的所在了,經驗值又增加了(慮而后能得)。
就像剛才所說,任何代碼任何錯誤,都是有根有據不會憑空出現。我們軟件開發人員的工作,就是解決一個一個的問題。只要能把這些問題分析得當,條理清晰的列出來,就離成功不遠了。
很多初學編程或剛剛工作的人都會報怨,看不懂代碼,不知道業務邏輯所以沒法工作。其實做事的時候,不要一上來就想一次解決問題,要循序漸進,你連代碼出錯出在哪里都不知道,怎么去修改錯誤。要先找到出錯的代碼是哪個文件,是從哪里進入的,又經過哪些方法的調用,要明白這些代碼的業務邏輯。如果不明白就先注釋起來。初學的時候要學會分析問題的方法,找到問題的關鍵點,每行代碼其實都是在調動數據,但有些調動是對當前業務沒有影響的這些可以先排除掉,那些會對后面的業務邏輯產生影響的,都是問題的關鍵點。初學者不要嫌麻煩,遇到這些關鍵點一定要注釋。就算不明白整個的業務邏輯,單獨一行代碼的意思總該明白吧,無非就是添刪查改和方法調用嘛。當你把這些代碼通讀一遍并都注釋后,就可以把這些注釋當成讀小說一樣讀下來,再復雜的業務邏輯也應該能讀明白了。
古之欲明明德于天下者,先治其國;欲治其國者,先齊其家;欲齊其家者,先修其身;欲修其身者,先正其心;欲正其心者,先誠其意;欲誠其意者,先致其知;致知在格物。
物格而后知至,知至而后意誠,意誠而后心正,心正而后身修,身修而后家齊,家齊而后國治,國治而后天下平。
古代那些想在天下弘揚光明正大品德的人,先要治理好自己的國家;要想治理好自己的國家,先要管理好自己的家庭和家族;要想管理好自己的家庭,先要修養自身的品性;要想修養自身的品性,先要端正自己的心思;要想端正自己的心思,先要使自己的意念真誠;要想使自己的意念真誠,先要使自己獲得知識;獲得知識的途徑在于認識和研究萬事萬物。通過對萬事萬物的認識,研究后才能獲得知識;獲得知識后意念才能真誠;意念真誠后心思才能端正;心思端正后才能修養品性;品性修養后才能管理好家庭和家族;管理好家庭后才能治理好國家;治理好國家后天下才能太平。
咱們先不說什么治國之論,單就軟件開發這個行業來講。很多人都在抱怨公司小掙錢少管理混亂感覺屈才之類的。可你真的有這么大才嗎,那些剛剛畢業的學生,在學校里玩兒了四年。到公司時什么都不會白紙一張,就像我以前發過的一個文章里說的。都不用說敬業精神,當你連最起碼的認真工作都做不到時,還有什么資格說公司給你的工資太少,對不起你的工作量。
要么別做這份工作,別接受這個任務,既然做了就要做好。不要把工資少當成不認真工作的借口。你再不認真工作,該被剝削的地方誰也跑不了,老板還是要賺他的錢。但工作經驗是自己的呀!!! 軟件開發這個工作需要不斷學習不斷的進步才能保持自己的位置。而軟件開發正是需要認真工作,才能體會出其中的奧妙,體會其中的精華所在。要想讓自己將來有好的發展,就要先做到自律,休息的時候當然要玩兒,但上班的時候就要以工作為重。要想自律就要提高自身修養,提高自己對工作重要性的認識。要想提高自身修養,就要端正自己的心態,上班的時候不要總去想什么窗外的高樓街上的美女。要想端正心態,就要讓自己的意念真誠,要真心的認真負責的對待自己的工作,對待自己手中寫出的每一行代碼。這時就需要先獲得知識,要學會這些技術,不然什么都不懂的人只能復制粘貼別人的代碼,卻不知道這些代碼在干什么,往往復制錯了自己卻混然不知。
自天子以至于庶人,壹是皆以修身為本。其本亂而末治者否矣,其所厚者薄,而其所薄者厚,未之有也!
上自國家君王,下至平民百姓,人人都要以修養品性為根本。若這個根本被擾亂了,是不可能治理好家庭甚至國家天下的。不分輕重緩急,本末倒置卻想做好事情,這也同樣是不可能的。
就像剛才說的,剛工作的人工資少工作累這是事實情況,大家都是從這一步走過來的。只有經歷過這一步,才能明白認真工作和提高工作效率的重要性。要想提高工作效率,就要提高自身能力,就要積累工作經驗。可工作經驗這東西并不是說來就來的,需要自己刻苦努力才能得來。并不是說明天把你送到IBM或者什么大公司,給你好多好多錢,給你換了一個超美的工作環境。你就突然什么都會了什么都懂了。當你什么都不會還凈犯錯的時候,真的到了這種環境中,周圍都是高手,你還好意思和別人打招呼嗎?
posted @
2007-05-27 20:27 小強 閱讀(1410) |
評論 (4) |
編輯 收藏