第一個Android程式—認識檔案結構

來源:互聯網
上載者:User

標籤:android   style   blog   class   code   java   

該程式任務:添加一個顯示文本和一個按鈕

對Activity的初步認識:就像一個視窗,能顯示資訊,又像一個容器,能容納功能空間,如button,在程式角度上看,又像一個 類,可以和其他的類(Activity)發生聯絡。

建立Activity的要點:

  1. 一個Activity就是一個類,類名隨意起,不過必須繼承Activity這個父類。
  2. 需要複寫onCreate()方法
  3. 每一個Activity都應該在AndroidManifest.xml檔案中進行配置
  4. 為Activity添加必要的控制項

整體檔案代碼預覽:

 1 //MyActivity.java 檔案 2  3 package geeker.MyActivity; 4 import android.app.Activity; 5 import android.os.Bundle; 6 import android.widget.Button; 7 import android.widget.TextView; 8  9 public class MyActivity extends Activity {10     //成員變數的聲明11     private TextView myTextView = null;12     private Button myButton = null;13     //重寫OnCreate方法,會自動產生14     public void onCreate(Bundle savedInstanceState) {15         //調用父類方法,該句代碼自動產生16         super.onCreate(savedInstanceState);17         //通過布局檔案的id調用該Activity所使用的布局檔案18         setContentView(R.layout.main);19         //通過findViewById()方法拿到布局檔案中添加的控制項20         //不過在布局檔案中添加控制項的時候必須定義id號,21         //如:android:id="@+id/myTextView"22         myTextView = (TextView)findViewById(R.id.myTextView);23         myButton = (Button)findViewById(R.id.myButton);24         //向控制項上制定顯示文字25         myTextView.setText("This is my first Activity !");26         myButton.setText("MY FIRST BUTTON");  27     }28 }29 30 //main.xml 檔案31 <?xml version="1.0" encoding="utf-8"?>32 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"33     android:orientation="vertical"34     android:layout_width="fill_parent"35     android:layout_height="fill_parent"36     >37 <TextView  38     android:id="@+id/myTextView"39     android:layout_width="fill_parent" 40     android:layout_height="wrap_content" 41     />42 <Button43     android:id="@+id/myButton"44     android:layout_width="fill_parent"45     android:layout_height="wrap_content"46     />    47 </LinearLayout>48 49 //R。jar 檔案該檔案自動產生,不要自己改動50 /* AUTO-GENERATED FILE.  DO NOT MODIFY.51  *52  * This class was automatically generated by the53  * aapt tool from the resource data it found.  It54  * should not be modified by hand.55  */56 57 package geeker.MyActivity;58 59 public final class R {60     public static final class attr {61     }62     public static final class drawable {63         public static final int icon=0x7f020000;64     }65     public static final class id {66         public static final int myButton=0x7f050001;67         public static final int myTextView=0x7f050000;68     }69     public static final class layout {70         public static final int main=0x7f030000;71     }72     public static final class string {73         public static final int app_name=0x7f040001;74         public static final int hello=0x7f040000;75     }76 }

其實走一遍添加Button的流程就明白各個檔案間的聯絡了:

1 先開啟main.xml檔案,加一個button按鈕的布局

1 <Button2     android:id="@+id/myButton"3     android:layout_width="fill_parent"4     android:layout_height="wrap_content"5  />  

2 其實上一步完成後,編譯運行已經能看到一個Button按鈕了,但是我想在按鈕上添加文字以說明該按鈕的作用,在java中的程式為 :

Button bt = new Button();bt.setText("MY FIRST BUTTON");

那麼在Android程式中如何在.java源檔案中拿到剛才在main.xml中添加的控制項呢?

基於這個目的,在main.xml檔案中加了此句:android:id="@+id/myButton",這一句使得R.java檔案中多了一個叫id的類,該控制項的id號就在這個類中出現了,這樣做為了方便.java檔案中的調用。

實際上如果不加上一句,該控制項是不會在R.java檔案中產生id號碼的,因為只有在res目錄中添加檔案才會自動在R.java中產生id號,而添加一個控制項只是在一個資源檔中做修改而已,所以不會自動產生id號。

我們可以看一下R.java檔案中自動產生的ID代碼:

 public static final class id {        public static final int myButton=0x7f050001;        public static final int myTextView=0x7f050000;}

然後在.java檔案中就可通過getViewById()方法拿到控制項了

拿到控制項之後就可以像java程式中一樣進行相關操作了,代碼如:

private Button myButton = null;myButton = (Button)findViewById(R.id.myButton);myButton.setText("MY FIRST BUTTON");  

實際上這個流程只體現了xml檔案和R.java檔案之間的聯絡(通過該句:android:id="@+id/myButton),以及.java與R.java之間的聯絡(通過該句:findViewById(R.id.myTextView) )

補充一下其他檔案關係的代碼體現:

MyActivity.java檔案與Main.xml檔案的聯絡時通過MyActivity.java檔案中的setContentView(R.layout.main);體現的,因為一個Activity檔案要對應一個布局檔案

MyActivity.java檔案與AndroidManifest.xml檔案之間的聯絡時通過AndroidManifest.xml檔案中的

<activity android:name=".MyActivity" android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter></activity>

來體現的,這也說明了Activity建立的關鍵點之一:

  • 每一個Activity都應該在AndroidManifest.xml檔案中進行配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.