由於早陣子開始了使用Android Studio,由於我在也是初學者的關係,所以在一邊學習之餘,一邊做筆記,並且寫上這個blog裡面。
基本上,這篇筆記是給我自己個人使用,所以內容可能寫得沒那麼詳細。只是作為參考的話,對於一些初學者來說也許會有一點幫助。(當然,估計編程方面需要一定程度的知識,才能可能看得明我的筆記)
這篇文章,主要是學習如何用Android Studio寫一個簡單的程序。透過這個程序,學習如何使用TextView, Text Field 和 Button.
這個程序用途,主要是可以在裡面輸入文字,例如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) Widgets的Plain TextView, 用來顯示文字; id設定為txt_test
(2) Text Fields的Plain Text, 用來輸入文字; id設定為tf_test
(3) Widgets的Button, 作為按鈕; id設定為btn_test
關於設定id,可以按下圖的方法,首先選擇所需要設定id的物件,然後再Property裡面,輸入id.
在設計完版面後,去編輯文件 TestApplication\app\src\main\java\com\sakurafirefly\test\MainActivity.java ,並加入程序代碼:
1. 首先,匯入需要使用的library:
由於我的例子會用到TextView, Text Field,Button 還有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()裡面,加入以下的代碼來設定Button的OnClick 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); } }
沒有留言:
張貼留言