[Android Develop_001]-开发环境及Activity
2014-09-27 08:42
183 查看
Android开发环境搭建的教程网上很多,读者可自行百度之,可能在这个过程中遇到一些问题,比如Google的网站连不上或者ADT与Eclipse版本不匹配等等。这些问题应该都是可以通过百度得到答案的。网上很多的教程都是下载JDK,Eclipse,SDK,ADT,然后安装这样讲的,很多小伙伴在按照教程做的时候遇到了不少的问题,虽然最终问题得到了解决,但这个过程比较闹心。这里提供一种捷径,直接从Android
Developer的官网下载集成了JDK,Eclipse,SDK,ADT的Android Studio开发环境。下载后直接启动就可以了,不需要在线下载SDK工具,安装ADT等等。传送门:
本章节的重点是说Android的Activity。通过讲如何创建Activity来熟悉Android 工程的结构。至于Activity是什么,百度也会告诉你。这里只简单地说一下概念,更详细的关于原理的东西会在今后的章节中详细讨论。下面的这段解释非我原创,我觉得很好就引用过来了。这段话的原始链接:http://www.cnblogs.com/tekkaman/archive/2011/06/07/2074211.html,感谢博客园的Tekkaman
一个Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,例如拨号、拍照、发送email、看地图。每一个activity被给予一个窗口,在上面可以绘制用户接口。窗口通常充满屏幕,但也可以小于屏幕而浮于其它窗口之上。
一个应用程序通常由多个activities组成,他们通常是松耦合关系。通常,一个应用程序中的activity被指定为"main"activity,当第一次启动应用程序的时候呈现给用户的那个activity。每一个activity然后可以启动另一个activity为了完成不同的动作。每一次一个activity启动,前一个activity就停止了,但是系统保留activity在一个栈上(“back stack”)。当一个新activity启动,它被推送到栈顶,取得用户焦点。Back
Stack符合简单“后进先出”原则,所以,当用户完成当前activity然后点击back按钮,它被弹出栈(并且被摧毁),然后之前的activity恢复。
当一个activity因新的activity启动而停止,它被通知这种状态转变通过activity的生命周期回调函数。有许多回调函数一个activity可能会收到,源于它自己的状态变化-无论系统创建它、停止它、恢复它、摧毁它-并且每个回调提供你完成适合这个状态的指定工作的机会。例如,当停止的时候,你的activity应该释放任何大的对象,例如网络数据库连接。当activity恢复,你可以重新获得必要的资源和恢复被中断的动作。这些状态转换都是activity的生命周期的部分。
下面有一个Activiy Life Circle的图奉上,非原创,但比较经典。
Activity应该包含三个主体部分,1)Activity 类 2 )Layout 3)AndroidManifest.xml 注册,说主体部分是因为Activity可能包含TextView、Drawable、String等元素。这些需要在R.java中注册。这些非必须的不算在主体内容中。
下面就是一个登录功能的Activity.
一个Activity类会继承一个Activity父类,并且要实现父类的onCreate方法。这里在调用父类的onCreate方法的同时,我们需要指定Layout。Layout文件定义在res->layout目录下,这是一个xml文件,里面包含了一些界面元素。
登录功能很简单,输入用户名和密码即可登录,这时候就涉及到Activity的跳转了。关于Activity的跳转的方式有很多,我这里使用的是一种最简单的方式。在Activity代码里面已经有了。
由于是Android 4.0的界面看上不有点傻(个人观点)
下一个章节我们来说说布局的事情。
Developer的官网下载集成了JDK,Eclipse,SDK,ADT的Android Studio开发环境。下载后直接启动就可以了,不需要在线下载SDK工具,安装ADT等等。传送门:
本章节的重点是说Android的Activity。通过讲如何创建Activity来熟悉Android 工程的结构。至于Activity是什么,百度也会告诉你。这里只简单地说一下概念,更详细的关于原理的东西会在今后的章节中详细讨论。下面的这段解释非我原创,我觉得很好就引用过来了。这段话的原始链接:http://www.cnblogs.com/tekkaman/archive/2011/06/07/2074211.html,感谢博客园的Tekkaman
一个Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,例如拨号、拍照、发送email、看地图。每一个activity被给予一个窗口,在上面可以绘制用户接口。窗口通常充满屏幕,但也可以小于屏幕而浮于其它窗口之上。
一个应用程序通常由多个activities组成,他们通常是松耦合关系。通常,一个应用程序中的activity被指定为"main"activity,当第一次启动应用程序的时候呈现给用户的那个activity。每一个activity然后可以启动另一个activity为了完成不同的动作。每一次一个activity启动,前一个activity就停止了,但是系统保留activity在一个栈上(“back stack”)。当一个新activity启动,它被推送到栈顶,取得用户焦点。Back
Stack符合简单“后进先出”原则,所以,当用户完成当前activity然后点击back按钮,它被弹出栈(并且被摧毁),然后之前的activity恢复。
当一个activity因新的activity启动而停止,它被通知这种状态转变通过activity的生命周期回调函数。有许多回调函数一个activity可能会收到,源于它自己的状态变化-无论系统创建它、停止它、恢复它、摧毁它-并且每个回调提供你完成适合这个状态的指定工作的机会。例如,当停止的时候,你的activity应该释放任何大的对象,例如网络数据库连接。当activity恢复,你可以重新获得必要的资源和恢复被中断的动作。这些状态转换都是activity的生命周期的部分。
下面有一个Activiy Life Circle的图奉上,非原创,但比较经典。
Activity应该包含三个主体部分,1)Activity 类 2 )Layout 3)AndroidManifest.xml 注册,说主体部分是因为Activity可能包含TextView、Drawable、String等元素。这些需要在R.java中注册。这些非必须的不算在主体内容中。
下面就是一个登录功能的Activity.
package com.example.androidexample; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.example.business.*; public class LoginActivity extends Activity { private EditText etUserName; private EditText etPassWord; private Button btnLogin; private Button btnReset; private String username; private String password; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); super.setContentView(R.layout.activity_login); btnLogin = (Button)super.findViewById(R.id.btnLogin); btnReset = (Button)super.findViewById(R.id.btnReset); btnLogin.setOnClickListener(btnLoginListener); btnReset.setOnClickListener(btnResetListener); } private OnClickListener btnLoginListener = new OnClickListener(){ @Override public void onClick(View arg0) { etUserName = (EditText)findViewById(R.id.etUserName); etPassWord = (EditText)findViewById(R.id.etPassWord); username = etUserName.getText().toString(); password = etPassWord.getText().toString(); if(SystemManager.Login(username, password)) { Toast.makeText(LoginActivity.this,"Login Success.",Toast.LENGTH_LONG).show(); intent = new Intent(LoginActivity.this, UserInfoActivity.class); //启动Activity startActivity(intent); } Toast.makeText(LoginActivity.this,"Login Fail.",Toast.LENGTH_LONG).show(); } }; private OnClickListener btnResetListener = new OnClickListener(){ @Override public void onClick(View arg0) { etUserName = (EditText)findViewById(R.id.etUserName); etPassWord = (EditText)findViewById(R.id.etPassWord); etUserName.setText(""); etPassWord.setText(""); } }; }
一个Activity类会继承一个Activity父类,并且要实现父类的onCreate方法。这里在调用父类的onCreate方法的同时,我们需要指定Layout。Layout文件定义在res->layout目录下,这是一个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" > <TextView android:id="@+id/tvUserName" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/txtUserName"> </TextView> <EditText android:id="@+id/etUserName" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="text"/> <TextView android:id="@+id/tvPassWord" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/txtPassWord"> </TextView> <EditText android:id="@+id/etPassWord" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textPassword"/> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <Button android:id="@+id/btnReset" android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/btnReset" android:layout_weight="1"/> <Button android:id="@+id/btnLogin" android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/btnLogin" android:layout_weight="1"/> </LinearLayout> </LinearLayout>
登录功能很简单,输入用户名和密码即可登录,这时候就涉及到Activity的跳转了。关于Activity的跳转的方式有很多,我这里使用的是一种最简单的方式。在Activity代码里面已经有了。
intent = new Intent(LoginActivity.this, UserInfoActivity.class); //启动Activity startActivity(intent);intent是一个在Activity之间传递消息的对象。能够关联两个Activity,并且可以将父Activity的某些参数传递给链接到的子Activity。
由于是Android 4.0的界面看上不有点傻(个人观点)
下一个章节我们来说说布局的事情。
相关文章推荐
- 关于配置android开发环境,创建新的Android Application Project时创建却不产生activity相关文件问题
- 【Android零基础开发001】Activity启动与多个Activity之间的切换
- [Android] 001 搭建Android开发环境
- 001.android环境搭建(集成的IDE搭建开发环境)
- Android开发---001:开发环境搭建及HelloWorld
- [Android开发][001~002] android开发入门,环境配置
- Android官方开发文档Training系列课程中文版:Activity测试之测试环境配置
- Android开发环境搭建,Activity生命周期,五大布局
- Android-开发笔记-001_Android开发环境搭建
- Android_001_搭建开发环境_NetBeans
- 64位WIN7下Android 开发环境搭建(SDK Manager闪退,无法更新sdk,建立新项目时无法正常自动生成Activity的问题解决)
- Android开发环境搭建(Win XP)
- windows下android 开发环境建立
- Android开发入门(四)之界面Activity
- 谷歌Android手机应用开发环境的搭建 推荐
- Android 开发入门 0 在Windows上搭建Android开发环境
- Ubuntu下安装Sun-Java6-Jdk和配制Eclipse下Android开发环境
- Android连载之:第二章第三节:利用其他的开发环境和工具开发Android应用程序
- Android开发环境建立