日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android helloworld程序

發(fā)布時間:2025/5/22 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android helloworld程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、單擊菜單 File > New > Project 彈出的窗口選擇創(chuàng)建一個新的 Android 項目。

在安裝好的Eclipse插件的新建項目,如圖所示:

?

?

2、并在創(chuàng)建 Android 項目的對話框里填寫項目的詳細信息,確認無誤后按下 finish 按鈕一個工程就被順利的創(chuàng)建成功了。

項目結(jié)構(gòu)圖示 :

?

?

簡單介紹一下幾個比較重要的目錄。
(1)src 目錄用于存放代碼。
(2)gen 目錄用于存放對應(yīng)該資源文件的代碼。
(3)res 目錄用于存放資源文件。
(4)res\layout 目錄用于存放布局描述文件。
(5)res\values 目錄用于存放常量定義文件。

?

src里cn.wangmeng.test下有一個helloworld,他的名字就來自于我們新建項目的時候填寫的Acivity name, 這個HelloWorld就繼承自Activity(Android Framework里面最重要的一個類,詳細信息可以參考 -> (Activity ), 我們簡單地理解為它是一個UI的容器,直接跟用戶打交道最前端的類。 還有一個R.java,這個類是系統(tǒng)根據(jù)res文件夾中的內(nèi)容自動為你生成的,我們先講一下res文件夾,res是resources的縮寫,顧名思義,你程序中所需要的文字,圖片,布局文件等等資源都是放在這個文件夾下面的,你現(xiàn)在看到這個文件夾下面有
drawable - 這個是放圖片的
layout - 這個是放布局文件的
values - 下面放字符串(strings.xml ) 最后是AndroidManifest.xml. 你每次添加一個Acivity都需要在這個文件中描述一下,整個項目的結(jié)構(gòu)都由這個文件控制。 布局是由XML控制的,內(nèi)容如下:

  • <?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"
  • />
  • <Button android:id="@+id/button"
  • android:text="@string/click_me"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content">
  • </Button>
  • </LinearLayout> 所有的android程序都是用XML布局的,而且布局分為很多種,布局中有兩個元素,一個是文本顯示框,一個是按鈕,一般LinearLayout,還有相對布局,這是官方提供的布局圖:

?

?

?

strings.xml是存放我們常用的常量,在JAVA里面用Resources.getText()獲取,在UI里android:text="@string/click_me"獲取,演示內(nèi)容如下:

  • <?xml version="1.0" encoding="utf-8"?>
  • <resources>
  • <string name="hello">Hello World, helloworld!</string>
  • <string name="app_name">helloworld</string>
  • <string name="click_me">click_me</string>
  • </resources> 我們在按鈕添加了一個簡單的響應(yīng)事件,代碼如下:
  • package cn.wangmeng.test;
  • import android.app.Activity;
  • import android.app.AlertDialog;
  • import android.os.Bundle;
  • import android.view.View;
  • import android.view.View.OnClickListener;
  • import android.widget.Button;
  • public class helloworld extends Activity {
  • /** Called when the activity is first created. */
  • @Override
  • public void onCreate(Bundle savedInstanceState) {
  • super.onCreate(savedInstanceState);
  • setContentView(R.layout.main);
  • ?
  • Button button=(Button)findViewById(R.id.button);
  • button.setOnClickListener(new OnClickListener()
  • {
  • public void onClick(View v) {
  • openDialog();
  • }
  • }
  • );
  • }
  • private void openDialog(){
  • AlertDialog.Builder builder = new AlertDialog.Builder(this);
  • builder.setTitle("Hello");
  • builder.setMessage("Hello World \n");
  • builder.setNegativeButton("OK",null);
  • builder.show();
  • }
  • }

    最后運行結(jié)果如下:

?

?

Run As Android Application,點擊右側(cè)的Home鍵,進入主界面,點擊主界面中間的按鈕,出現(xiàn)應(yīng)用列表,運行Hello, Android應(yīng)用即可。(請耐心等候運行結(jié)果,時間會比較長)

?

?

?

PS:

Android工程結(jié)構(gòu)

src:源代碼,我們的代碼。

gen:Android開發(fā)工具所生成的文件,我們不能編輯這個文件。

R.java,標識程序中使用的各種資源。沒有被此文件標識的資源,不會被打包到APK文件中。

assets:應(yīng)用系統(tǒng)需要使用到的文件,比如mp3、視頻...。這些文件會被原樣打包到APK中。

res:資源目錄,向此目錄添加資源時,會被R.java自動記錄。

drawabel-?dpi:圖標文件(*.png*.jpg)

layout:界面布局文件(main.xml)WEB應(yīng)用中的HTML類同

values:軟件上所需要顯示的各種文字。可以存放多個*.xml文件,還可以存放不同類型的數(shù)據(jù)。比如arrays.xmlcolors.xmldimens.xmlstyles.xml...

AndroidManifest.xml:項目的總配置文件,記錄應(yīng)用中所使用的各種組件。如果應(yīng)用中使用到手機中的功能,需要在此聲明使用權(quán)限。

default.properties:記錄項目中所需要的環(huán)境信息,比如Android的版本等。

AndroidManfest.xml分析

manifest

根節(jié)點,描述了package中所有的內(nèi)容

xmlns:android

包含命名空間的聲明。

xmlns:android=http://schemas.

android.com/apk/res/android,使得

Android中各種標準屬性能在文件中使用,

提供了大部分元素中的數(shù)據(jù)

Package

聲明應(yīng)用程序包

application

包含package中application級別組件聲

明的根節(jié)點。此元素也可包含application

的一些全局和默認的屬性,如標簽、icon、

主題、必要的權(quán)限,等等。一個manifest

能包含零個或一個此元素(不能大余一個)

android:icon

應(yīng)用程序圖標

android:label

應(yīng)用程序名字

Activity

用來與用戶交互的主要工具。Activity是用

戶打開一個應(yīng)用程序的初始頁面,大部分

被使用到的其他頁面也由不同的activity所

實現(xiàn),并聲明在另外的activity標記中。

注意,每一個activity必須有一個<activity>

標記對應(yīng),無論它給外部使用或是只用于

自己的package中。如果一個activity沒有

對應(yīng)的標記,你將不能運行它。另外,

為了支持運行時查找Activity,可包含一個

或多個<intent-filter>元素來描述activity所支持的操作

android:name

應(yīng)用程序默認啟動的activity

intent-filter

聲明了指定的一組組件支持的Intent值,從

而形成了IntentFilter。除了能在此元素下指

定不同類型的值,屬性也能放在這里來描

述一個操作所需的唯一的標簽、icon和其他信息

action

組件支持的Intent action

category

組件支持的Intent Category。這里指定

了應(yīng)用程序默認啟動的activity

uses-sdk

該應(yīng)用程序所使用的sdk版本相關(guān)

?

Android程序運行過程

程序的運行由主配置文件開始AndroidManifest.xml

?

  • <?xml?version="1.0"?encoding="utf-8"?>?
  • ? ?
  • <manifest?xmlns:android="http://schemas.android.com/apk/res/android"?
  • ? ?
  • package="com.changcheng.android"?
  • ? ?
  • android:versionCode="1"?
  • ? ?
  • android:versionName="1.0">?
  • ? ?
  • <!-- ?
  • ? ?
  • @drawable/icon: ?
  • ? ?
  • @代表R.java ?
  • ? ?
  • drawable是R.java的靜態(tài)內(nèi)部類 ?
  • ? ?
  • icon是drawable的常量,指定圖片資源的ID。 ?
  • ? ?
  • -->?
  • ? ?
  • <application?android:icon="@drawable/icon"?android:label="@string/app_name">?
  • ? ?
  • <!-- ?
  • ? ?
  • .HelloWorld指向package="com.changcheng.android"下面的HelloWorld類。 ?
  • ? ?
  • 我們可以在此添加子包.sub.xxxClass,但不能添加上級包。 ?
  • ? ?
  • -->?
  • ? ?
  • <activity?android:name=".HelloWorld"?
  • ? ?
  • 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>?
  • ? ?
  • <!--?本程序使用AndoridSDK的最低版本?-->?
  • ? ?
  • <uses-sdk?android:minSdkVersion="7"?/>?
  • ? ?
  • </manifest>?
  • 接下來從HelloWorld類開始:

    ?

  • package?com.changcheng.android; ?
  • ? ?
  • ? ?
  • ? ?
  • import?android.app.Activity; ?
  • ? ?
  • import?android.os.Bundle; ?
  • ? ?
  • ? ?
  • ? ?
  • /** ?
  • ? ?
  • *?我們的HelloWorld類,繼承自Activity類。 ?
  • ? ?
  • * ?
  • ? ?
  • */ ?
  • ? ?
  • public?class?HelloWorld?extends?Activity ?
  • ? ?
  • { ?
  • ? ?
  • /**?Called?when?the?activity?is?first?created.?*/ ?
  • ? ?
  • @Override ?
  • ? ?
  • public?void?onCreate(Bundle?savedInstanceState)?{ ?
  • ? ?
  • //?在此方法中完成界面的繪制 ?
  • ? ?
  • super.onCreate(savedInstanceState); ?
  • ? ?
  • //?顯示R.java文件中的layout靜態(tài)內(nèi)部類的main常量。它指向mail.xml ?
  • ? ?
  • setContentView(R.layout.main); ?
  • ? ?
  • } ?
  • ? ?
  • } ?
  • 然后再我們再看看mail.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"?
  • ? ?
  • >?
  • ? ?
  • <!-- ?
  • ? ?
  • 文本視圖控件 ?
  • ? ?
  • android:layout_width="fill_parent"?,它的父窗口是屏幕,所以寬度為整個屏幕。 ?
  • ? ?
  • android:layout_height="wrap_content"?,它的高度為它所包含的內(nèi)容高度。如果內(nèi)容中有一行,就是一行的高度。 ?
  • ? ?
  • android:text="@string/hello",它包含(顯示)的文本內(nèi)容,指向R.java中string靜態(tài)內(nèi)部類的常量hello所指向的文本資源ID,文本資源文件是strings.xml。 ?
  • ? ?
  • -->?
  • ? ?
  • <TextView?
  • ? ?
  • android:layout_width="fill_parent"?
  • ? ?
  • android:layout_height="wrap_content"?
  • ? ?
  • android:text="@string/hello"?
  • ? ?
  • />?
  • ? ?
  • </LinearLayout>?
  • 再看看Strings.xml:

    ?

  • <?xml?version="1.0"?encoding="utf-8"?>?
  • ? ?
  • <resources>?
  • ? ?
  • <string?name="hello">HelloWorld,Hello?World!</string>?
  • ? ?
  • </resources>?
  • 現(xiàn)在讓我們看看掌管資源的主文件R.java

    ?

  • package?com.changcheng.android; ?
  • ? ?
  • ? ?
  • ? ?
  • 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; ?
  • ? ?
  • } ?
  • ? ?
  • } ?
  • R.java文件中的所有資源ID全部是自動生成的,我們不可以手動編輯。當我們添加一個圖片時,ADT插件,會以圖片的名稱為常量的名稱,然后自動生成對應(yīng)的資源ID。當我們向strings.xml中添加一個字符串時,ADT插件會以符串的名稱為常量的名稱,然后自動生成對應(yīng)的資源ID

    ?

    R.java文件不需要我們手動編輯,我們只需要在需要使用到資源的地方引用這個文件里標識的資源即可!

    轉(zhuǎn)載于:https://blog.51cto.com/linzheng/1081806

    總結(jié)

    以上是生活随笔為你收集整理的android helloworld程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。