Android想切換新的Activity的時候
最常用的兩個函式就是startActivity跟startActivityForResult
比方說我想讓程式去開一個網頁就可以用

Uri uri=Uri.parse("http://www.google.com.tw");
Intent i=new Intent(Intent.ACTION_VIEW,uri);
startActivity(i);

在Android這個動作必須先創造Intent(意圖),也就是我有個"意圖"想要喚醒某個動作
但是我不能直接去叫用Activity,必須將想叫起的Activity變成Intent然後把意圖丟給startActivity,讓他去告訴Android我有個意圖,請他幫我執行,並且可以透過finish()關掉一個Activity

而startActivity跟startActivityForResult又有什麼不同?
startActivity是個單向開啟的動作,可以透過Bundle傳資料給下一個Activity
但是沒辦法從下一個Activity那邊接收訊息

舉個例子,有隻BMI的Activity想要把Data傳給Report這個Activity顯示


BMI.java

....
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(BMI.this, Report.class);
Bundle bundle=new Bundle();
bundle.putString("meta", "BMI:");
bundle.putDouble("BMI", 25.0);
intent.putExtras(bundle);
startActivity(intent);
}
...


Report.java

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.report);
TextView _msg=(TextView)findViewById(R.id.result);
Bundle b=this.getIntent().getExtras();
_msg.setText(b.getString("meta")+b.getDouble("BMI"));

透過意圖(Intent)把一些資訊一起帶給下一個Activity,並且新的Activity可以透過Intent收到資料

但是上面只能單向傳遞資料,可是有時候我希望可以從新的Activity得到一些資訊
這時候就能使用startActivityForResult,他代表我開啟一個Activity並等待他傳些東西回來,而使用startActivityForResult的時候,必須複寫Activity的onActivityResult函式才能真的有作用

舉個例子,假設我有個A想要開啟B並等待他傳回些什麼

A code

private static final int EDIT=1;
....
Intent intent=new Intent();
intent.setClass(this,Edit.class);
startActivityForResult(intent, EDIT);

startActivityForResult除了要傳輸的意圖之外,還要帶一個參數requestCode,這是為了讓接收資料的onActivityResult能夠辨別是哪個Activity回傳的資料,因為我可能一個Activity能夠開啟很多不同的Activity


B code

....
Intent i=new Intent();
Bundle b=new Bundle();
b.putString("B", "I am B");
i.putExtras(b);
setResult(RESULT_OK,i);
finish();
....

或者我不需要傳資料,只是通知A是B返回的

....
setResult(RESULT_OK);
finish();
....

setResult這個函式可以帶兩個參數,一個是resultCode,告知onActivityResult這次洞做是否成功,RESULT_OK是個常數,第二個參數是可選的,一個intent,主要是把資料回傳給上一個Activity,也可以不用回傳資料

最後回來看onActivityResult

A code

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case EDIT:

Toast.makeText(this, data.getExtras().getString("B"), 0).show();
}
}

onActivityResult帶三個參數

Felix 發表在 痞客邦 留言(0) 人氣()

最近在研究可以開啟手機相機功能,拍完照取出照片的方法。爬了許多文章,發現光是開啟相機前置處理就會影響取出相片時的處理方法。

最基本的調用相機方法:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 0);

Felix 發表在 痞客邦 留言(0) 人氣()

一、禁止屏幕旋轉:
 
打開工程中的 AndroidManifest.xml 文件,在 <activity> </activity> 中,添加一條屬性信息:
android:screenOrientation="portrait"  (強制豎屏)

Felix 發表在 痞客邦 留言(0) 人氣()

*res/raw和assets的相同點:
1.兩者目錄下的文件在打包後會原封不動的保存在apk包中,不會被編譯成二進制。

*res/raw和assets的不同點:
1.res/raw中的文件會被映射到R.java文件中,訪問的時候直接使用資源ID即R.id.filename;assets文件夾下的文件不會被映射到R.java中,訪問的時候需要AssetManager類。
2.res/raw不可以有目錄結構,而assets則可以有目錄結構,也就是assets目錄下可以再建立文件夾

Felix 發表在 痞客邦 留言(0) 人氣()


想要儲存一些簡單的資料,
可以使用SharedPreferences來儲存,
假設現在有三個欄位, 分別是名字, 電話和性別,
我不想要離開程式以後, 資料就消失了,
我可以把這些數值利用SharedPreferences存起來。

Felix 發表在 痞客邦 留言(0) 人氣()

1. 介紹
    1)DOM(JAXP Crimson解析器)
    DOM是用與平臺和語言無關的方式表示XML文檔的官方W3C標準。DOM是以層次結構組織的節點或資訊片斷的集合。這個層次結構允許開發人員在樹中尋找特定資訊。分析該結構通常需要載入整個文檔和構造層次結構,然後才能做任何工作。由於它是基於資訊層次的,因而DOM被認為是基於樹或基於物件的。DOM以及廣義的基於樹的處理具有幾個優點。首先,由於樹在記憶體中是持久的,因此可以修改它以便應用程式能對資料和結構作出更改。它還可以在任何時候在樹中上下導航,而不是像SAX那樣是一次性的處理。DOM使用起來也要簡單得多。

Felix 發表在 痞客邦 留言(0) 人氣()


步驟一:

在res-->layout內新增一個myspinner.xml的android xml檔,貼上下列程式碼

myspinner.xml











1

2

3

4

5

6

7

8

9

10

11

12

13



<?xml version="1.0" encoding="utf-8"?>


    android:id="@android:id/text1"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:ellipsize="marquee"

    android:gravity="center"

    android:paddingLeft="8dip"

    android:singleLine="true"

    android:textColor="#8B008B"

    android:textSize="32sp"

    android:textStyle="bold" >

</TextView>




Felix 發表在 痞客邦 留言(1) 人氣()

Android Browser using WebView
網絡視圖(WebView)是一個顯示網頁的視圖(View). 通過使用網絡視圖(WebView), 您可以把網絡瀏覽器顯示在您的活動(Activity)上.



注意,為了使您的活動(Activity)接入互聯網並從網絡視圖(WebView)加載網頁, 您必須在清單文件(AndroidManifest.xml)裡, 的子項中添加"android.permission.INTERNET"這個權限.

Felix 發表在 痞客邦 留言(0) 人氣()


 開發一個web項目,通常分為兩部分,一部分是GUI,即界面、美工,使用HTML,CSS,JS編寫,另一部分則是業務邏輯,即程序、功能,使用PHP編寫。而模板引擎則是聯繫這兩部分的「橋樑」,可理解成一個PHP類,裡面定義了許多方法,實現了將PHP的原始輸出加載上界面樣式後再輸出。

Felix 發表在 痞客邦 留言(0) 人氣()

clip_image001
在以往幫使用者檢修電腦的時候,常常會遇到有很多使用者的 Windows 帳號沒有設定密碼,或是簡易密碼,跟使用者解釋應該要設定密碼的時候,卻往往會得到『太麻煩』、『記不住』之類的答案。
從資訊安全角度來看,密碼絕對是防護您電腦的第一道防線,過於簡單的密碼以及不設定密碼往往會招致病毒或駭客入侵。但對於有些使用者而言,比如說長輩,要求他們記住較複雜的密碼的確是件苦差事。而在部份場合下使用的電腦,比如說HTPC,當你打開HTPC,然後舒舒服服地躺在沙發上的時候,卻還要拿著無線鍵盤或是遙控器按著密碼,也的確是非常讓人覺得掃興的事情。
在這些情況下,我們可以設定讓 Windows 自動登入,至少可以擁有密碼的防護,但又可以擁有開機以後馬上可以使用的便利性。
 

Felix 發表在 痞客邦 留言(0) 人氣()

轉自 http://shaocian.blogspot.com/2013/01/android-helloworld.html?m=1
讓我們開始來測試第一支 Android 程式吧,以圖解的方式來為各位解釋:
 






點選工具列 File | New | Project


Felix 發表在 痞客邦 留言(0) 人氣()


轉自http://www.inote.tw/adt-bundle-setup-tutorial
如果你是 Android 的開發者,或是將來有興趣成為 Android 的開發者,那麼或許會被開發書中的繁瑣的程序給嚇到,尤其大部份書都會建議安裝 Eclipse、ADT、Android SDK等,如果對於一個剛踏入這領域的人,一定會覺得超級複雜,甚至打了退堂鼓。而 ADT Bundle 是 Google 為了降低 Android 入門門檻所包裝而成的開發工具,整合了Android SDK、eclipse、Android Development Tools (ADT),而且只要解壓縮後就可以使用了唷。

 

Felix 發表在 痞客邦 留言(2) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。