zoukankan      html  css  js  c++  java
  • Android开发新手HelloWorld解析

      首先看这个 HelloWorld 类。

    Java代码
    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);   
        }   
    }  


      他继承了 Activity ,前面讲了,一个 Activity 可以想象成一个手机的屏幕,用于展示一屏的内容,所以所有要展示内容的屏幕都要继承 Activity 才能实现,接着覆盖了 onCreate() 方法对该 Activity 进行初始化 setContentView(R.layout. main ); 设置了使用 main.xml 这个布局文件作为当前 Activity 的内容展示 .main.xml 就是放在 res 下, layout 下面的文件 xml 布局文件 , 我们可以直接使用 R.layout.main 进行直接的引用他,这也是 Android 亮点的地方,省得我们为了引用一个 xml 文件再使用 File 类去读取,我们要做的只是把这个 xml 文件的索引给 Android ,他会自动的帮我们找到它并使用 .

    2. main.xml 布局文件

    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="fill_parent"    
        android:layout_height="wrap_content"    
        android:text="@string/hello"  
        />  
    </LinearLayout>  


      布局文件的内容不多 , 开始就是一个 LinearLayout 组件的定义,然后在这个 LinearLayout 放了一个用于显示文字的 TextView 。现在来看一下几个参数 :

    .      LinearLayout 一个线性布局面板,只能垂直和水平布局, android:orientation="vertical" 代表里面的子元素只能垂直排列,而使用 android:orientation="horizontal" 就标识里面的子元素水平排列 ..
    .      android:layout_width 定义当前视图占的宽度,这里是 fill_parent 即为充满整个屏幕。而设置成 wrap_content 会根据当前视图的大小只能的改变宽度
    .      android:layout_height 是定义视图的高度,这里也是填充整个屏幕。而设置成 wrap_content 会根据当前视图的大小只能的改变高度。
    .      android:text 是这是 TextView 要显示的文本,可以是字符串,也可以是一个字符串的引用,这里是一个引用,引用的是 strings.xml 定义好的名字为 hello 的字符串
    3.      string.xml 介绍。

    Xml代码
    <?xml version="1.0" encoding="utf-8"?>  
    <resources>  
        <string name="hello">Hello World, HelloWorld!</string>  
        <string name="app_name">HelloWorld</string>  
    </resources>  


      这里我们看看就明白了,只要是定义一个个的 K-V 的键值对,供其他地方使用。比如上面的 main 中对 hello 的引用。这对字符的统一管理和国际化有很大的意义。



    4.      AndroidManifest.xml 的介绍

    Xml代码
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
          package="com.flysnow"  
          android:versionCode="1"  
          android:versionName="1.0">  
        <application android:icon="@drawable/icon" android:label="@string/app_name">  
            <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>  
        <uses-sdk android:minSdkVersion="8" />  

    </manifest>  


      这是项目的重要配置文件,诸如 Activity ,权限, Intent 等都在这里配置

    Package: 定义了该应用的包。
    android:versioCode 定义了应用的版本号
    android:versionName 定义了应用的版本名字
    application 标签定义了一个应用,一个项目最多有一个 Application 标签。
    android:icon="@drawable/icon" 定义了应用的图标 引用资源文件中的 icon 图片
    android:label="@string/app_name" 定义了应用的名称
    activity 标签定义了一个 Activity ,你的每一个 Activity 必须在这里定义,否则不能运行 .
    Android:name 定义了 Activity 的类名 , 这里的 .HelloWorld 是以上面的 Package 定义为基础的,也就是 Package(com.flysnow) 加上这个 android:name(.HelloWorld) 要能定位到这个 Activity(com.flysnow.HelloWorld) ,否则就是找不到 .
    android:label 定义了该 Activity 的标题  
    intent-filter 定义一个 Intent 过滤器,用于标记对应的 Activity ,以便 Android 系统能找到该 Activity ,定义的是隐性的 Intent ,主要使用两个子标签 action 和 category 来区分每个 Intent 。



      最后的 <uses-sdk android:minSdkVersion="8" /> 就是定义应用的最低 SDK 的级别,

  • 相关阅读:
    BestCoder17 1001.Chessboard(hdu 5100) 解题报告
    codeforces 485A.Factory 解题报告
    codeforces 485B Valuable Resources 解题报告
    BestCoder16 1002.Revenge of LIS II(hdu 5087) 解题报告
    codeforces 374A Inna and Pink Pony 解题报告
    codeforces 483B Friends and Presents 解题报告
    BestCoder15 1002.Instruction(hdu 5083) 解题报告
    codeforces 483C.Diverse Permutation 解题报告
    codeforces 483A. Counterexample 解题报告
    NSArray中地内存管理 理解
  • 原文地址:https://www.cnblogs.com/cainiaoaixuexi/p/3409038.html
Copyright © 2011-2022 走看看