`
congpeixue
  • 浏览: 275606 次
  • 性别: Icon_minigender_1
  • 来自: ...
社区版块
存档分类
最新评论

Android开发简单例子

阅读更多

通过Eclipse的Android插件(ADT)可以很轻松的新增一个Android工程。
工程结构目录及主要目录的作用如下:


(1) Src:存放程序源代码,没什么可说的。
(2) Gen:存放编译器自动生成的java代码,一般不需要我们操作。默认会有个R.java, 此文件与layout/main.xml有一定的关联, 当我们更改main.xml的时候, R.java也会随之做对应更新(Eclipse插件会自动帮我们完成)。
(3) Res/drawable-hdpi:存放高像素图片。
(4) Res/drawable-mdpi:存放中等像素图片。
(5) Res/drawable-ldpi:存放低像素图片。目前感觉以上三者没什么好区分的,无论放在哪个里面(drawable-hdpi、drawable-mdpi、drawable-ldpi)图片,程序都能加载到。
(6) Layout:  main.xml主要完成页面布局。(这个常打交道),声明各种控件(如:Button、EditText等)、对控件进行布局。
(7) AndroidManifest.xml: 功能后面会说到。
(8) Values/strings.xml:存放声明的字符串。










注:我们也可以不借助Eclipse进行工程开发及启动,而是直接使用命令行,简单实例如下:
(1)


(2)



(3)



Android开发的一个简单例子:
应用情景:文本框内输入电话号码,通过按钮拨打电话。(次要:修改下应用的背景)


MainActivity.java
package com.cpx;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

/**
* 拨打EditText中输入的手机号码
*
* @author CPX
* @version 1.0
* @date Dec 23, 2010 7:24:37 PM
*/
public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
        //  R类是Eclipse帮我们自动构建的, 无需我们操作。其内容和res/layout/main.xml对应,
        // 当我们在mail.xml中增加/删除内容时, R会随之更新。
       
        // 本行代码的意思设置Android屏内控件布局,本次采用的是vertical
        setContentView(R.layout.main);
       
        /*
         * 获取res/layout/main.xml中定义的EditText和Button句柄
         */
        final EditText phoneNumber = (EditText)findViewById(R.id.phoneNumber);
        final Button callButton = (Button)findViewById(R.id.callButton);
       
        // 为button注册事件
        callButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {

// 拨打电话,电话号码来自EditText中输入的内容
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber.getText()));
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(callIntent);
}
        });
    }
}

① MainActivity实现Activity,程序启动入口。
② 当程序启动的时候会先调用public void onCreate(Bundle savedInstanceState)方法。
③ super.onCreate(savedInstanceState); 同J2SE开发时的AWT事件(子类方法运行前先调用父类方法执行)。

④setContentView(R.layout.main); setContentView方法用于设置页面布局(Android提供了多种页面布局方式,自己去看,应该不难。)

⑤finalEditText phoneNumber = (EditText)findViewById(R.id.phoneNumber);
final Button callButton = (Button)findViewById(R.id.callButton);
通过id获取两个组件。
R.layout.main、R.id.phoneNumber、R.id.callButton稍后做说明。
⑥ callButton.setOnClickListener 为button注册一个事件,当单击按钮时执行某个动作,参照java里的事件机制。此处调用的是Android内部提供的拨打电话api。关于Intent的介绍部分提供如下链接
http://wenku.baidu.com/view/174c12284b73f242336c5f34.html
















R.java

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found.  It
* should not be modified by hand.
*/

package com.cpx;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int bg=0x7f020000;
        public static final int icon=0x7f020001;
    }
    public static final class id {
        public static final int callButton=0x7f050002;
        public static final int phoneNumber=0x7f050001;
        public static final int textLabel=0x7f050000;
    }
    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;
    }
}

Layout/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"
    android:background="@drawable/bg"
    >   
    <TextView android:id="@+id/textLabel"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="请输入您的电话号码"
    />
    <EditText android:id="@+id/phoneNumber"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
    <Button android:id="@+id/callButton"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="呼叫"
    />
</LinearLayout>

values/string.xml


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MainActivity!</string>
    <string name="app_name">android</string>
</resources>



通过上面3段代码,很容易得出R.java里面的值和main.xml、string.xml存在一定的关联,实际上R.java内各字段的值是依据main.xml和string.xml得出的,并且当main.xml、string.xml更改时R.java各字段的值会随之更新, Eclipse插件会帮助我们完成这个更新动作,不需要我们干预。


还记得上面(MainAvtivity.java)说过的R.layout.main、R.id.phoneNumber、R.id.callButton的吗,现在明白值是从哪里得来的吧, 并且知道各值的含义了吧。











Bg.jpg




作为应用的背景。




这样一个简单的应用就完成了, 启动(关于启动, 参考Android环境配置.docx)后, 得到如下窗口。

























电话打不出去。。^_^





注:如果需要授权的话,请按如下提示修改:




<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.cpx"
      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="7" />
<uses-permission android:name="android.permission.CALL_PHONE">
</uses-permission>
</manifest>
分享到:
评论

相关推荐

    Android开发实例大全 王东华

    《Android开发实例大全》是王东华先生撰写的一本深入浅出的Android应用程序开发指南,旨在帮助开发者通过实例学习和掌握Android平台上的编程技术。这本书覆盖了从基础到高级的各种主题,包括用户界面设计、数据存储...

    最详细的Android开发教程实例

    本教程"最详细的Android开发教程实例"旨在提供一个全面的学习路径,帮助新手和有经验的开发者深入理解Android开发的核心概念和技术。 【Android开发入门】: Android开发入门是学习Android编程的第一步。"101- ...

    一个简单的android开发实例

    在Android开发领域,Android Studio是官方推荐的集成开发环境(IDE),它提供了强大的功能和便捷的工具,使得开发者能够...本实例提供的只是一个起点,希望它能激发你对Android开发的兴趣,助你在这一领域更进一步。

    Android开发入门60个小案例+源代码

    在Android开发领域,初学者经常会面临许多挑战,如理解Android应用程序的基本架构、学习XML布局、掌握Java或Kotlin编程语言,以及如何与设备硬件交互等。"Android开发入门60个小案例+源代码"这个资源提供了丰富的...

    android service 简单实例源代码

    在Android开发中,Service是四大组件之一,它在后台运行,不与用户界面直接交互,常用于执行长时间的任务,如播放音乐、网络通信等。本篇文章将深入解析"android service 简单实例源代码",帮助你理解如何在Android...

    android actionbar简单实例

    这个“android actionbar简单实例”是针对Android新手或者开发者想要了解和掌握ActionBar基本用法的一个实践项目。在这个项目中,我们将探讨如何在Android应用中添加并自定义ActionBar,包括设置返回按钮。 首先,...

    android 基础开发实例

    这本书的随书源码提供了丰富的实例,涵盖了从入门到进阶的各种主题,旨在帮助初学者建立扎实的Android开发基础。 首先,"Android软件开发"是核心概念,它涉及到使用Java或Kotlin编程语言,以及Android Studio集成...

    Kotlin从零到精通Android开发_kotlin_android开发_android_

    最后,本教程中的实例将涵盖从简单的Hello World应用到复杂的多模块项目,让你逐步从Kotlin新手成长为熟练的Android开发者。通过阅读《Kotlin从零到精通Android开发.pdf》,你将能够全面掌握Kotlin语言在Android平台...

    android开发实例源码

    "android开发实例源码"这个主题提供了多个实例,涵盖了Android应用开发的基础到进阶知识。这些实例可以帮助初学者理解并实践Android编程的核心概念。 1. **LISTVIEW1** 和 **LISTVIEW2**、**LISTVIEW3**: 这些...

    常见的 Android Studio 项目实例

    以上五个项目实例涵盖了 Android 开发中的许多关键技术点,从简单的记事本应用到复杂的社交媒体应用,每一个项目都能帮助你提升开发技能。如果你是初学者,可以从简单的记事本应用开始;如果你已经有一定的开发经验...

    android NFC开发实例

    Android NFC(Near Field Communication)开发实例是针对移动设备上近距离无线通信技术的应用实践。NFC是一种短距离的高频无线通信技术,允许电子设备之间进行非接触式点对点数据传输,通常在十厘米(约四英寸)范围...

    18个android开发实例

    在Android开发领域,实例是学习和理解概念的关键。"18个Android开发实例"这个压缩包文件很可能是针对初学者和中级开发者设计的,旨在通过实际操作帮助他们掌握Android应用开发的基本技能。以下是对这些实例可能涉及...

    Android开发入门 实例 helloworld

    本文将深入探讨这个入门实例,带您逐步走进Android开发的世界。 首先,Android是Google主导的开源移动操作系统,主要应用于智能手机和平板电脑,但它也支持智能手表、电视、汽车等设备。Android开发主要使用Java或...

    android开发蓝牙的一个简单例子

    通过这个简单的例子,你已经掌握了Android蓝牙开发的基础。在实际项目中,可能还需要处理更多细节,如连接失败的重试机制、设备连接状态的监控、多线程下的并发问题等。不断实践和优化,才能更好地应对复杂的蓝牙...

    Android简单计算器开发案例

    在Android平台上,开发一个简单的计算器应用是一个非常典型的入门级项目,可以帮助开发者理解基本的界面布局、事件监听...通过这个案例,初学者可以全面了解Android应用开发的基本流程,对Android开发有更深入的理解。

    android开发实例大全_王东华

    本书以Android应用程序的开发为主题,并结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程。本书的讲述由浅入深,实例全面并典型,几乎囊括了所有和Android应用相关的项目。全书分为...

    Android开发的列表例子

    本示例“Android开发的列表例子”旨在为初学者提供一个基础的ListView使用教程。 首先,理解ListView的基本概念。ListView是Android SDK中的一个视图容器,用于显示一列可滚动的项目列表。每个项目(item)通常包含...

    android 简单的帧动画例子

    在Android开发中,帧动画(Frame Animation)是一种常见的动画效果,它通过连续播放一系列静态图像来创造出动态的视觉效果,类似于传统的电影制作原理。在这个"android 简单的帧动画例子"中,我们将探讨如何在...

    Android 手机软件开发 实例 Java

    在Android开发中,你可以通过这些示例了解如何配置PhoneGap项目、如何创建基本的布局、如何调用PhoneGap API以及如何处理各种事件。例如,一个简单的PhoneGap应用可能包含一个index.html页面,其中包含HTML结构和...

    android简单控件例子

    在开始Android开发之前,首先需要建立一个新的Android工程。工程的建立涉及到选择合适的API版本,设置项目名称和保存位置,以及工程的结构,例如源代码文件、资源文件和配置文件的组织。Android Studio是官方推荐的...

Global site tag (gtag.js) - Google Analytics