注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

Android开发之十七关于布局和Activity的关系  

2015-04-20 21:23:14|  分类: Android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Android开发之十七关于布局和Activity的关系

前面讲过了很多的相关的知识了,但是细一想,类似于MFC中的资源与相关的运行机制在Android中是怎么控制的呢?那个创建的AndroidManifest.xmlLayout.xml的关系呢?好吧,这里就全新的手动创建一个Android的应用程序,类似于使用SDK,自己来开发一个最简单的但是整个运行机制完全相同的小程序。

首先创建一个Android应用程序,但是在Create Activity的时候儿不勾选这个选项,也就是说默认不创建Activity

当然在这个前面那页你也可以不勾选这个创建Activity的项,那么后面这个CreateActivity就会自动的不勾选。

因为没有创建Activity,所以你的应用程序中Src中是没有任何东西的,这时候儿需要手动创建一个Java包,右键SrcNEW-PACKAGE,这个可以按你的实际情况来输入这里输入:

Com.exapmle.activitytest.同样右击这个包可以创建一个Class,随便写,这里写成FristActivity

package com.example.activitytest;

 

import android.app.Activity;

import android.os.Bundle;

 

public class FirstActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

         // TODO Auto-generated method stub

         super.onCreate(savedInstanceState);

         setContentView(R.layout.first_layout);

}

}

注意红色的部分是下面需要添加的,这里先添加上。至于onCreate这个函数可以用快捷键来自动创建。

一般来说,Android一个Activity对应着一个布局,所以这里需要创建一个布局。右击res/layout选择New-Android XML File。这时会弹出一个创建布局文件的窗口。将其命名为:first_layout,根元素选择默认的LinearLayout。确定后就可以看到可视化的而已编辑器。

窗口的下面有两个切换卡:Graphical Layoutfirst_layout.xml。前者可以如MFC中可视化的创建窗口,后者如WPF一般的写XML来创建窗口。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

    <Button

        android:id="@+id/button_1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="Button_1"

        ></Button>

 

</LinearLayout>

如上,手动添加一个Button,切换到Graphical Layout,你就可以看到创建了一个Button.这时把onCreate中的红色部分加上。你就可以把一个布局加载到应用程序中了。简单吧。

虽然已经把布局加入到了应用程序,但是却还是没有办法使用,为什么呢?你可以这样理解,没有入口Main函数。(当然,这样理解是不太准确的)

那么怎么办呢?就需要在前面说的主XML里添加活动,即在AndroidManifest.xml增加:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.activitytest"

    android:versionCode="1"

    android:versionName="1.0" >

 

    <uses-sdk

        android:minSdkVersion="14"

        android:targetSdkVersion="19" />

 

    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".FirstActivity"

            android:label="This is FristActivity">

            <intent-filter >

                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>

            </intent-filter>

        </activity>

    </application>

 

</manifest>

注意:活动的注册声明要放在<application>标签内。在前面的博文里说过,“android.intent.action.MAIN决定应用程序最先启动的Activity android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里”,所以这里等于是注册了一下主入口。

需要注意的是,给主活动指定的 label 不仅会成为标题栏中的内容,还会成为启动器(Launcher)中应用程序显示的名称。

这时,运行程序,就可以看到程序运行正常的情景了。

其始也简,终将也必巨。

  评论这张
 
阅读(322)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017