2015年6月21日 星期日

[Android Studio]入門筆記 Part 1


由於早陣子開始了使用Android Studio,由於我在也是初學者的關係,所以在一邊學習之餘,一邊做筆記,並且寫上這個blog裡面。

基本上,這篇筆記是給我自己個人使用,所以內容可能寫得沒那麼詳細。只是作為參考的話,對於一些初學者來說也許會有一點幫助。(當然,估計編程方面需要一定程度的知識,才能可能看得明我的筆記)



 這篇文章,主要是學習如何用Android Studio寫一個簡單的程序。透過這個程序,學習如何使用TextView, Text FieldButton.


 這個程序用途,主要是可以在裡面輸入文字,例如ABC, 然後按 按鈕後,程序會顯示以下內容:
Test {輸入內容} {按Test按鈕的次數}


 例如: Test ABC 10

源代碼: Github

詳細方法如下:


首先,用(File > New Project)開一個新Project, 設定如下圖:








程序名稱為 "TestApplication", 預設的Activity為"MainActivity".

在開完新Project後,我首先做的是設計一個簡單的版面。

1. 選擇文件 TestApplication\app\src\main\res\layout\activity_main.xml
2. 在Palette裡面,把以下的三種東西拖放到設計的版面裡面,如下圖:



在這個例子裡,我用上了以下三種東西:
(1) WidgetsPlain TextView, 用來顯示文字; id設定為txt_test
(2) Text FieldsPlain Text, 用來輸入文字; id設定為tf_test
(3) WidgetsButton, 作為按鈕; id設定為btn_test

關於設定id,可以按下圖的方法,首先選擇所需要設定id的物件,然後再Property裡面,輸入id.


在設計完版面後,去編輯文件 TestApplication\app\src\main\java\com\sakurafirefly\test\MainActivity.java ,並加入程序代碼:

1. 首先,匯入需要使用的library:
 由於我的例子會用到TextView, Text FieldButton 還有View,所以需要這些代碼:

import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


2. 然後,需要建立variable (變數),用來識別在activity_main.xml 裡面的TextView按鈕等。

    Button btn_test;
    TextView txt_test;
    EditText tf_test;

另外,建立num variable,用來計算按下Test按鈕的次數:
    int num = 0;

3. 在onCreate()裡面,加入以下代碼,去把activity_main.xml的物件,例如TextView,放到variable裡面。
主要使用的,則是findViewById()這個function.

        // 1. Assign the TextView defined in layout XML to variable txt_test
        txt_test = (TextView) findViewById(R.id.txt_test);

        //2. Assign the EditText(Text Field) defined in layout XML to variable tf_test
        tf_test  = (EditText) findViewById(R.id.tf_test);

        // 3. Assign the Button defined in layout XML to variable btn_test
        btn_test = (Button) findViewById(R.id.btn_test);

4. 在onCreate()裡面,加入以下的代碼來設定ButtonOnClick Event, 主要是在按下按鈕時,執行一段代碼,來顯示文字 Test {輸入內容} {按Test按鈕的次數}

        
        //Add OnClick Listener to button
        btn_test.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                txt_test.setText("Test " + tf_test.getText() + " " + (++num));
            }
        });

5.基本上,按照以上步驟去做,這個簡單的程序就完成了。
以下為 MainActivity.java 的完整內容,作為參考用途。

        
package com.example.test.testapplication;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

    Button btn_test;
    TextView txt_test;
    EditText tf_test;

    //integer variables
    int num = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 1. Assign the TextView defined in layout XML to variable txt_test
        txt_test = (TextView) findViewById(R.id.txt_test);

        //2. Assign the EditText(Text Field) defined in layout XML to variable tf_test
        tf_test  = (EditText) findViewById(R.id.tf_test);

        // 3. Assign the Button defined in layout XML to variable btn_test
        btn_test = (Button) findViewById(R.id.btn_test);

        //Add OnClick Listener to button
        btn_test.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                txt_test.setText("Test " + tf_test.getText() + " " + (++num));
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}


沒有留言:

張貼留言