一.

创建Activity的要点:

1.继承Activity类
2.需要重写onCreate方法
3.需要在AndroidManifest.xml注册
4.为Activity添加控件和内容
5.setContentView(R.layout.activity_main);设置布局文件
6.TextView myTextView=(TextView)findViewById(R.id.myTextView);获取控件

二、

Intent
1.Component name
2.Action
3.Data
4.Category
5.Extras
6.Flags

通过Intent跳转Activity

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

  myButton = (Button) findViewById(R.id.myButton);
myButton.setOnClickListener(new MyButtonListener());
}
class MyButtonListener implements OnClickListener {
@Override
public void onClick(View v) {
/*// 1.跳转到本程序的Activity
* Intent intent=new Intent();
* intent.putExtra("key", "DATA");
* intent.setClass(MainActivity.this, OtherActivity.class);
* MainActivity.this.startActivity(intent);
*/
       //2.跳转到外部Activity 如:发送短信
Uri uri = Uri.parse("smsto://0800000123");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", "The SMS text");
startActivity(intent);
}
}

public class OtherActivity extends Activity{

private TextView myTextView=null;

@Override
  protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

setContentView(R.layout.other);
  Intent intent=getIntent();//获取Intent
  String value=intent.getStringExtra("key");
  myTextView=(TextView)findViewById(R.id.textView1);
  myTextView.setText(value);
 }
}

 

三、Activity下的菜单

菜单可以在代码中添加,也可以在res.menu.activity.xml文件中添加

@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 1, R.string.exit);//添加菜单
menu.add(0, 2, 2, R.string.about);
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId();//获取菜单ID
if (id == R.id.action_settings) {
return true;
} else if (id == 1) {
finish();// 关闭程序
} else if (id == 2) {
return true;
}
return super.onOptionsItemSelected(item);
}

4.Activity生命周期

启动第一个Activity

FirstActivity --> onCreate 创建时
FirstActivity --> onStart 当可见时
FirstActivity --> onResume 可获得焦点时
---------------------------

从第一个Activity进入第二个Activity
FirstActivity --> onPause 启动另外的Activity时调用,比如当接电话时把数据保存
SecondActivity --> onCreate
SecondActivity --> onStart
SecondActivity --> onResume
FirstActivity --> onStop 当不可见时
--------------------------

从第二个Activity回到第一个Activity
SecondActivity --> onPause
FirstActivity --> onStart
FirstActivity --> onResume
SecondActivity --> onStop
SecondActivity --> onDestroy 被销毁时,当明确执行finish()时,或被Android销毁

Activity是以栈的形式进入存在的,当调用finish()时,将不能再回到这个Activity,因为已经被销毁了。

5.在注册Activity的xml文件中,可将Activity的样式改成窗口形式

<activity   android:name="com.example.mars_0500_activity04.SecondActivity"
android:label="@string/title_activity_second"
android:theme="@android:style/Theme.Dialog">
</activity>

6.当Activity处于 onPause 、onStop 、onDestroy 时,在android系统资源部足时,将有可能被kill掉。

Android学习笔记01的更多相关文章

  1. 【8-16】Android学习笔记01

    Android目录树 Activity 生命周期 创建一个 Activity 在 android 中创建一个 Activity 要编写一个继承自 android.app.Activity的 Java ...

  2. 零基础Android学习笔记-01 安卓开发环境搭建

    安卓开发环境搭建. 1.首先准备JDK,从官网找到JDK下载地址,原来做.NET不熟悉JAVA,干脆用最新的,下载了JDK 1.7的版本.原来装过1.5还要配置环境变量什么的.但1.7好像很给力,装好 ...

  3. 软件测试之loadrunner学习笔记-01事务

    loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...

  4. Android 学习笔记之Volley(七)实现Json数据加载和解析...

    学习内容: 1.使用Volley实现异步加载Json数据...   Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...

  5. Android学习笔记进阶之在图片上涂鸦(能清屏)

    Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...

  6. android学习笔记36——使用原始XML文件

    XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...

  7. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  8. udacity android 学习笔记: lesson 4 part b

    udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...

  9. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

随机推荐

  1. Linux-内核缓存区和write行为

    <Unix环境高级编程> 应用缓冲技术能很明显的提高系统效率.内核与外围设备的数据交换,内核与用户空间的数据交换都是比较费时的,使用缓冲区就是为了优化这些费时的操作.其实核心到用户空间的操 ...

  2. python tornado框架实现CRUD

    1.本例采用postgresql数据库,创建数据表 user_tbl ),signup_date date); 2.webapi接口 (1)tornado框架配置 t_tornado.py #-*- ...

  3. Python编程规范(PEP8)

    Python编程规范(PEP8) 代码布局 缩进 对于每一次缩进使用4个空格.使用括号.中括号.大括号进行垂直对齐,或者缩进对齐. 制表符还是空格? 永远不要将制表符与空格混合使用.Python最常用 ...

  4. 解决phpMyAdmin中缺少mysqli扩展的错误

  5. pam

    http://www.linux-pam.org/ sag(the linux-pam system administrators' guide)翻译(以下是网上别人的翻译,参考一下) http:// ...

  6. linux服务之svn

    架构:c/s 开发语言:python 服务器端:在linux平台下部署 客户端:分gui与cli两种操作界面 相关包: http://blog.sina.com.cn/s/blog_53b95aec0 ...

  7. html初学(三)

    <!-- 我就是我,不一样的烟花 piu piu piu 干啥子 如来神掌 -- --- ----- .======. ***********啊啊啊啊啊啊 | INRI | | | | | .= ...

  8. Android中使用speex将PCM录音格式转Wav格式

    Android中使用speex将PCM录音格式转Wav格式 2013-09-17 17:24:00|  分类: android |  标签:android  speex  wav  |举报|字号 订阅 ...

  9. js正则及常用方法函数总结

    正则表达式作为一种匹配处理字符串的利器在很多语言中都得到了广泛实现和应用,web开发本质上是处理字符串(服务端接受请求处理后拼接字符串作为响应,这在早期的CGI编程中最明显,然后客户端解析字符串进行渲 ...

  10. smarty模板基础

    将前台后台隔离,前台控制显示,后台控制逻辑/内容,与cms类似 原理: 用户访问text.php页面,后台调用类smarty.class.php显示静态模板;