AndroidStudio學習筆記-第一個安卓程序


要帶一個本科生做一部分跟安卓有點關系的項目,於是趁着機會學習一下編寫安卓程序。

第一篇材料來自谷歌官方,傳送門:https://developer.android.com/training/basics/firstapp/index.html。由於官方例程寫的很清楚了,基本上只要按着步驟就好了,所以不打算完全的復制粘貼,主要實踐過程中我的一些理解和思考。

1. 創建新工程

一個安卓程序的層次結構為 Application -> many activities (可以理解為很多個界面) -> layout + title + menu

新建工程后AS會自動生成許多文件,重要的文件包括:

  1. app/src/main/res/layout/activity_my.xml 格式為XML的layout文件。AS支持直接通過text來修改顯示界面,同時也提供了GUI,可以直接拖拽完成界面編輯。

  2. app/src/main/res/layout/content_my.xml 該文件被activity_my.xml調用。對layout的具體描述以及一些設置等。

  3. app/src/main/java/com.mycompany.myfirstapp/MyActivity.java jave核心代碼,包括實際的activity的類及其類函數。當app運行時,該activity類運行並調用前述layout文件顯示出來。

  4. app/src/main/AndroidManifest.xml app的基礎特性的配置及包括哪些組成部分(activity)

  5. app/build.gradle gradle腳本用來編譯和構建app,方便處理版本及依賴庫等問題。

  6. app/src/main/res/ 改目錄下包括app中所用到的所有資源:

    drawable-<density>/ 包括所有圖片資源,除了啟動圖標

    layout 包括每個activity的layout文件

    menu 包括activity的menu文件

    mipmap 包括啟動圖標

    values 其他的xml文件,包括string和color的定義等。

 

2. 運行程序

程序既可以在具體的安卓設備上運行,也可以在模擬器上運行。

在具體的安卓設備調試之前,需要安裝好設備的相關驅動,編譯程序的時候要選擇符合的版本號,不用怎么麻煩就可以運行hello world了!

 

3. 創建簡單的用戶界面

安卓app的圖形界面的層次結構為 ViewGroup -> View. ViewGroup是不可見的容器,定義了其子view如何布局,布局是ViewGroup的子類。View對象是普通的UI部件。

  1. 新建一個linear layout

  2. 增加Text域和button

<EditText android:id="@+id/edit_message"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/edit_message" />

    View的ID用來讀取和操作對應的View對象

    View的hint為輸入Text為空的時候的提示語句

  3. 增加String資源

    在res/values/strings.xml中增加名為edit_message和button_send的string

  4. 讓輸入框充滿屏幕 

 

給UI部件增加響應函數  

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_send"
    android:onClick="sendMessage" />

增加onClick響應,sendMessage為該activity的類函數

在MyActivity.javaMyActivity類中增加對應類函數,該類函數需要是Public的,Void的返回值以及只有View一個參數

在類函數中創建一個Intent用來打開新的activity

public void sendMessage(View view) {
  Intent intent = new Intent(this, DisplayMessageActivity.class);
  EditText editText = (EditText) findViewById(R.id.edit_message);
  String message = editText.getText().toString();
  intent.putExtra(EXTRA_MESSAGE, message);
 startActivity(intent); }

  intent能夠攜帶類型為字典的變量extras,通過調用putExtra能夠給字典賦值

在MyActivity中補充定義Extra_MESSAGE

public class MyActivity extends AppCompatActivity {
    public final static String EXTRA_MESSAGE = "com.mycompany.myfirstapp.MESSAGE";
    ...
}

 

4.創建另外一個Activity

  使用 AS創建另外一個blank Activity,編輯其java核心代碼

  接收intent

    Intent intent = getIntent();

    String message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE);

  在Activity中創建新的textView    

    TextView textView = new TextView(this);

    textView.setTextSize(40);

    textView.setText(message);

  在Activity中在布局中添加textView

    RelativeLayout layout = (RelativeLayout) findViewById(R.id.content);

    layout.addView(textView);

 

恭喜,完成基本的教程!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM