首頁 > 手機軟體

零基礎編寫android專案:[1]入門篇

2019-11-28 18:36:35

      當今隨著行動網際網路的日益發展,許多開發者都想在這個行業嘗嘗甜頭,甚至沒有基礎的開發者也進門了,因此,這個零基礎編寫android專案教學就分享出來。

      QQ、微信等眾多社交軟體廣受人們的喜愛,所以零基礎編寫android專案就拿社交軟體為例逐步講述完成android專案的步驟。

      當然完成一個android專案不可能立馬做出來,要一步一個腳印的學出來,下面進入我們的入門篇,準備好腦子和紙筆(雖然是零基礎,但還是要懂一些必要的java知識的),come on!

1

      首先,要想完成一個專案,在你的頭腦中,一定要有總體的思路,有一個學習路線圖,這樣學到最後不容易混亂。學習路線圖如圖下:


1

      有了學習的大致思路,要想進行android開發就一定要有android開發環境。因此,要事先下載好eclipse、android-sdk-windows、ADT安卓開發環境,一般百度都會搜到。以下是安裝方法:



2

      安裝成功後設定android虛擬裝置,環境搭建完成。如圖:


1

      android開發環境搭建完成後,編寫android專案肯定會需要一個目錄結構。具體結構如圖:



2

      這裡需要注意的是資原始檔R.java不能修改,如果編寫編碼過程中R檔案報錯,一定是其他資原始檔中有錯誤,注意排查。如果都沒問題,可以根據此步驟最後2張圖片所示,clean或fix一下專案即可。



1

      在認識了android目錄結構之後,先別急,還不能馬上進行編寫程式碼,因為android專案中,最重要而且都是圍繞Activity展開的,所以可以找到google下android的開發文件中Activity的使用方法,俗稱android手冊API,進行學習Activity以及其他知識點。在這裡不做過多解釋,不過只要是建立的Activity必須在清單檔案AndroidManifest.xml中註冊,至於Activity是什麼,你可以把它當成手機中某一個檢視介面。如圖:



1

      我們開始設想的編寫一個社交軟體的專案,值傳遞只是該專案的毛毛雨。比如,使用者登陸後下一個Activity需要獲得該使用者的資訊。

      因此,首先確定我們的思路是要從一個Activity傳值到另一個Activity中,建立MainActivity.java和NextButtonActivity.java兩個Activity。


2

      其次我們再把這2個布局表現出來,在這裡使用RelativeLayout布局(第2個布局暫不放任何內容,只判斷能取到值即可)。


3

      然後進行業務判斷,這裡用到了Intent物件,它也叫意圖,你現在想傳值過去,意思就是你的意圖就是傳值,所以建立Intent物件後給引數傳值,再用startActivity跳轉到第2個Activity。如圖所示:


4

      在MainActivity.java傳完值之後,該到NextButtonActivity.java這邊獲取值了,也是同樣用意圖Intent物件的get方法進行獲取。如圖所示:


5

      最後為了直觀的顯示出所傳值,我們用到Log來在系統後台顯示紀錄檔,這個方法在以後程式設計測試中常常用到。如圖所示:


1

      我們以類似社交應用中支付功能的訂單確認頁面為例,從MainActivity把加法傳值跳轉到NextButtonActivity中,在再NextButtonActivity中把結果輸入到文字框中點選確定,再把值傳回到MainActivity中。

      首先,我們一樣先把檢視介面表現出來,同樣使用RelativeLayout布局。程式碼如下:

    <EditText

        android:id="@+id/editText1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignLeft="@+id/nextButton"

        android:layout_below="@+id/nextButton"

        android:ems="2" >

        <requestFocus />

    </EditText>

    <TextView

        android:id="@+id/textView1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@+id/nextButton"

        android:layout_marginLeft="30dp"

        android:text=" + "

        android:textSize="30dp" />

    <EditText

        android:id="@+id/editText2"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@+id/nextButton"

        android:layout_marginLeft="60dp"

        android:ems="2" />

    <TextView

        android:id="@+id/textView2"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@+id/nextButton"

        android:layout_marginLeft="90dp"

        android:text=" = "

        android:textSize="30dp" />

    <EditText

        android:id="@+id/editText3"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@+id/nextButton"

        android:layout_marginLeft="120dp"

        android:ems="2" />

    <Button

        android:id="@+id/go"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@+id/editText1"

        android:text="傳值" />

      然後,NextButtonActivity也用RelativeLayout布局,程式碼如圖所示:


2

      接下來該傳值到NextButtonActivity中去了,在這裡不只是傳值,而且要保證後續要從NextButtonActivity中獲得結果還要傳回到MainActivity中,所以跳轉Activity時所用的方法為:startActivityForResult,並攜帶意圖Intent和請求編碼引數過去。程式碼如圖所示:


3

      跟第五步一樣,要先接受資料,然後再點選確定按鈕後要先獲取文字框內的結果,並返回MainActivity。在這裡需要用到setResult方法,並攜帶意圖Intent和返回編碼引數。程式碼如圖所示:


4

      最後,再將NextButtonActivity中的結果顯示到MainActivity中。在這裡需要重寫onActivityResult方法,並且當且僅當請求編碼和返回編碼都和剛才設定的編碼一樣時才能獲得NextButtonActivity中的結果。程式碼如圖所示:


1

      當你在玩手遊的時候或者在使用社交應用時正在跟一個人聊天並且開啟了聊天視窗,這是突然有人給你打電話,打完電話後還能回到原來的介面,這就需要Activity儲存現場狀態。

      在Activity儲存現場狀態中,需要重寫onSaveInstanceState,中文意思也就是儲存現場狀態,其中含有引數outState,用outState就可以儲存引數,可以是物件、也可以是值這種資料,一般要把現場儲存到資料庫或檔案中,實現資料持久化。

      這裡值得注意的是重寫onRestoreInstanceState方法可以重新儲存現場狀態,這種情況是在手機系統殺掉該進程後重新儲存現場狀態。

      由於是入門篇,所以目前只演示儲存到Activity的臨時狀態。程式碼如圖所示:


2

      現在從現場狀態中取值是關鍵,取值一定要有outState引數,所以只能在onCreate方法中取值。但要注意onSaveInstanceState如果沒有儲存現場狀態的話,是為空的,所以要判斷onSaveInstanceState不為空的情況再取出現場狀態,這樣就可以在每次啟動onCreate時取出現場狀態的資料了。

      其程式碼和生命週期如圖所示:



1

      Acitivity為什麼要有生命週期呢?因為手機當中可以有若干個應用程式,不是每個應用都可以展示給使用者看,需要一個一個的啟動,這個啟動了,那另一個應用就會暫停或者被殺死進程,因此,應用程式,也就是說Activity會有生命週期的概念,下面是一個Activity生命週期的執行圖,它涵蓋了所有生命週期執行狀態,大家可以看圖去理解它,後期在程式設計中還會涉及到生命週期,到時再慢慢體會,將它運用到實際專案中,這樣比較容易理解。如圖:



IT145.com E-mail:sddin#qq.com