首頁 > 軟體

Android範例Hello Android編寫方法

2019-11-30 00:12:49
「Hello, World」程式指的是只在計算機螢幕上輸出「Hello, World!」(意為「世界,你好!」)這行字串的計算機程式。一般來說,這是每一種計算機程式設計語言中最基本、最簡單的程式,亦通常是初學者所編寫的第一個程式。它還可以用來確定該語言的編譯器、程式開發環境,以及執行環境是否已經安裝妥當。

1

新建工程
選擇Android project
將會出現如下資訊Priject name:工程名字
Contents:單選框一個工程還是匯入現有工程
Build Target:選擇使用那一個JDK
Application name:應用程式名字
Package name: 建立包
Create Activity:建立一個Activity 如果你是J2EE程式員這個就相當於struts的Action類
Min SDK Version: JDK版本
建立完畢:目錄介紹:
Src: java原始檔即我們寫的java字尾名的檔案程式碼 在裡面有我們之前所填寫建立的一個MainActivity.java檔案
Gen:並沒有建立gen這個目錄 但是為什麼出現此目錄呢?沒錯這個是Android給我們自動生成的一個目錄 並且還在次目錄下建立了一個R檔案(此R檔案後面會講到)
Android 1.5:如果你是java程式員 就應該很熟悉 這個就書庫檔案 即 Android的核心檔案
Assets: 沒有用到過
Res.:放置資原始檔的目錄
Res.drawable:一般用來儲存相關應用的圖片以及mp3播放檔案等
Res.layout:用來儲存佈局資訊 如果你是j2ee程式員那麼此目錄下的檔案相當於jsp檔案即html檔案,只是Android是以xml方式進行佈局的
Res.values:儲存的相關的樣式檔案(CSS)以及經常用到的字串資訊的宣告,但是也是以xml進行封裝的
AndroidManifest.xml:工程描述檔案,相當於j2ee的web.xml檔案 ,它可以設定第一啟動的Activity檔案(即j2ee的Action類)



2

程式編寫
AndroidManifest.xml(工程描述檔案)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zxkj.luowei"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>
我們主要關注的就是application裡面的設定資訊:
android:icon:
指此應用程式的圖片 在模擬器裡面可以看到 : 點選家的按鈕接著拉開抽屜可以看到:此圖片就在:
Res.drawable(般用來儲存相關應用的圖片以及mp3播放檔案等)
目錄下
@drawable/icon
@代表在當前應用找
android:label
android:label="@string/app_name"
即在My_one_And顯示的名字
這裡會在我們開啟values/Strings.xml檔案
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, MainActivity!</string>
<string name="app_name">My_One_Android_Project</string>
</resources>
會發現一個name為app_name的String宣告並且其值於我們之前模擬器所顯示的標題一樣
<activity android:name=".MainActivity">
聲名一個Activity類 此類在 .MainActivity下其中點代表com.zxkj.luowei
即之前設定的package="com.zxkj.luowei"
<activity android:label="@string/app_name">
代表My_One_Android_Project
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>代表一個Action能做些什麼事情 這裡代表此Activity是第一啟動項
<action android:name="android.intent.action.MAIN" />
一般情況下此name是可以任意改動的 但是除此之外 因為sdk後台會根據這個名字來調如果你改動則找不到了
<category android:name="android.intent.category.LAUNCHER" />
標誌為第一啟動項
接下來進入
MainActivity.java類
package com.zxkj.luowei;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
會發現我們之前填寫的MainActivity 類 繼承自 Activity類
並且重寫了此類的onCreate(Bundle savedInstanceState)方法
此方法會在範例化此類的時候一並呼叫(建議了解下Activity的生命週期)
import android.os.Bundle 用於對映字串的值 可以在Android之間進行通訊
super.onCreate(savedInstanceState); 代表呼叫父類別的方法並且將savedInstanceState傳給父類別
setContentView(R.layout.main);
現在開啟R檔案
package com.zxkj.luowei;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
此目錄儲存了res目錄下的所有資源 並且給它們一個標識碼 好讓程式直接存取

public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
代表Strings.xml檔案下生命的String變數
此類是不可以被修改的並且當你更新
res此目錄下的檔案也同時被更新
如你向drawable丟進去一個檔案
會發現:
public static final class drawable {
public static final int icon=0x7f020000;
public static final int qkss=0x7f020001;
}
多出一個qkss
然而
setContentView(R.layout.main);
則代表
public static final class layout {
public static final int main=0x7f030000;
}<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
LinearLayout:這是一個布局資訊 標誌它所包含的View都是線性布局是
android:orientation:
android:orientation="vertical"
可以改成:
android:orientation="horizontal"
vertical此屬性代表View是以垂直進行排序
horizontalvertical此屬性代表View是以橫向進行排序
android:layout_width:
android:layout_width="fill_parent"
可以改成:
android:layout_width="wrap_content"
fill_parent橫向全部填充
wrap_content橫向順其改變(如圖片是多大就顯示多大)
當然我們還可以為它設定大小如:
android:layout_width="61px"
android:layout_height與android:layout_width類似
android:text:
android:text="@string/hello"
這裡text代表是顯示什麼內容
@string/hello 代表在values/Strings.xml檔案裡面讀取
我們開啟values/Strings.xml檔案
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, MainActivity!</string>
<string name="app_name">My_One_Android_Project</string>
</resources>
會發現一個name為hello 的String宣告並且其值於我們之前模擬器所顯示的內容一樣
可能還有些人對於
LinearLayout
布局中的
android:orientation="vertical"
android:orientation="horizontal"
這2者不是很了解 好的現在我做一個列子:
將main.xml進行修改部分
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="此為線性布局的垂直布局"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="此為線性布局的垂直布局"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="此為線性布局的垂直布局"
/>
</LinearLayout>
這裡我多新增了幾個Button 即按鈕 執行起來:可以看倒這就是線性垂直的效果
再將
android:orientation 改成:
android:orientation="horizontal"為什麼只看見一個Button呢 按下 Ctrl 不放接著按下F12就知道原因了
現在我們將
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
/>改成
<TextView
android:id="@+id/text_Id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
意思就是為TextView宣告一個識別符號(Id)
並且名字是text_Id
檢視R檔案:
public static final class id {
public static final int text_Id=0x7f050000;
}
會發現多了一個text_Id並且還分配給它一個識別碼
此識別碼直接指向TextView
現在我們修改MainActivity 的OnCreate方法
package com.zxkj.luowei;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private TextView one_Text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
one_Text=(TextView)findViewById(R.id.text_Id);
one_Text.setText("Hello Word");
}
}
private TextView one_Text;
宣告一個TextView起名叫one_Text
one_Text=(TextView)findViewById(R.id.text_Id);
找到R.id.text_Id標識碼的View
在Android裡面所有的檢視都繼承自View這個類
因此在這裡我們需要強制轉換
one_Text.setText("Hello Word");
為one_Text設定顯示內容為Hello Word



3

程式執行
右鍵設定Build Path,選中SDK版本
將滑鼠移動到工程名右擊:
選擇……此時應用程式將執行起來並彈出dos介面 即 模擬器在此資訊欄可以看到模擬器的執行過程:可能由於等待過久 模擬器將處於省電狀態 這個時候我們點選MENU可以使它執行我們的程式:
這個時候將出現如下字:




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