【Android开发学习笔记】【第三课】Activity和Intent
首先来看一个Activity当中启动另一个Activity,直接上代码说吧:
(1)首先要多个Activity,那么首先在res-layout下新建一个 Other.xml,用来充当第二个Activity的布局文件

<?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/MyTest"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
(2)加入一个 src 下加入一个类文件(java里是这么说的吗,我一直在搞c++,不太清楚java里面的属于怎么说)
记住类一定要 继承Activity ( public class *** extends Activity ),然后重写 onCreate 方法

package com.example.cart; import android.R.string;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView; public class OtherActivity extends Activity
{
private TextView mytext = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.othery); mytext = (TextView)findViewById(R.id.MyTest);
mytext.setText("hello activity");
}
}
这个Activity呢,其实很简单就是只有一个TextView,内容就是“hello activity”
(3)接下来我们需要在 AndroidManifest.xml 当中注册这个Activity

(4)我们需要在主的activity当中去调用,具体的做法是 首先在主Activity的布局是只有一个按钮,然后我们监听这个按钮按下事件,
按下这个按钮就会通过Intent来调用另一个Activity,也就是我们上面创建的Activity,下面是代码:
package com.example.cart; import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.View.OnClickListener;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.os.Build; public class MainActivity extends Activity
{
public Button mybutton = null; @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); mybutton = (Button)findViewById(R.id.MyButton);
mybutton.setText("nihao-ha2ha");
mybutton.setOnClickListener(new MyButtonListen());
} class MyButtonListen implements OnClickListener
{
@Override
/* 如果遇到 aetOnclickListener报错的时候,按照下面来做:
1.把 onClick(DialogInterface arg0, int arg1) 改成 onClick(View v)
2.把 import android.content.DialogInterface.OnClickListener; 改成 import android.view.View.OnClickListener; */
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, OtherActivity.class);
MainActivity.this.startActivity(intent);
}
}
}
(5) 运行程序之后,首先进入第一个Activity,点击了按钮了之后调转到了第二个Activity

接下来尝试一个Activity当中启动另一个Activity的时候,传递数据给另一个Activity:
Intent包含:ComponentName、Action、Data、Extras、Category、Flags,我们就将使用Extra来进行数据的传递
(1)主Activity当中这样调用
Intent intent = new Intent();
intent.putExtra("testintent", "ccyy");
intent.setClass(MainActivity.this, OtherActivity.class);
MainActivity.this.startActivity(intent);
(2)接受端是这样的
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.othery); Intent intent = getIntent();
String myvalue = intent.getStringExtra("testintent"); mytext = (TextView)findViewById(R.id.MyTest);
mytext.setText("hello activity" + myvalue);
}
当然,Intent进行数据传递的时候,不仅可以在同一个应用程序的不用Activity直接进行传递,而且可以进行不同应用程序的调用和数据传递:
下面通过Uri调用发短信的界面来进行说明,代码还是加到刚才的按钮相应中:
Uri uri = Uri.parse("smsto:13008574656");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", "hi,I am a student~");
MainActivity.this.startActivity(intent);
运行之后,点击按钮进入到发短信的界面:

这次学习主要理解了:
1.多个Activity
2.Intent的基本作用
3.一个Activity当中启动另一个Activity
4.使用Intent在Activity之间传递数据
【Android开发学习笔记】【第三课】Activity和Intent的更多相关文章
- android开发学习笔记000
使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个 ...
- 【Android开发学习笔记】【第五课】Activity的生命周期-上
今天学习Activity当中的七个生命周期函数: 首先得说一个事情,就是在代码当中如果加入了 System.out.println(" ------");之后,如何查看这里面的输出 ...
- 【Android开发学习笔记】【第四课】基础控件的学习
通过一个简单的例子来学习下面几种控件: 1.TextView:简单的文本显示控件 2.EditText:可以编辑的文本框 3.Button:按钮 4.Menu:这里指的是系统的Menu 5.Toast ...
- Android开发学习笔记:浅谈GridView
GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的.主要用于设置Adapter. GridView常用的X ...
- android开发学习笔记系列(2)-android应用界面编程
前言 本篇博客将会简要介绍andriod开发过程中的一些界面元素和编程的实现,我将大家走进安卓的XML世界,当然可能会涉及到java代码,当然本文主要是介绍XML文件的界面布局. 那么我们的XML存在 ...
- 【转】Android开发学习笔记(一)——初识Android
对于一名程序员来说,“自顶向下”虽然是一种最普通不过的分析问题和解决问题的方式,但其却是简单且较为有效的一种.所以,将其应用到Android的学习中来,不至于将自己的冲动演变为一种盲目和不知所措. 根 ...
- Android开发学习笔记:Intent的简介以及属性的详解【转】
一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述 ...
- Android开发学习笔记--计时器的应用实例
为了了解安卓计时器的用法,写了一个秒表的应用,正是这个秒表,让我对Android应用的速度大跌眼镜,我设置了一个计时器,10ms更新一次显示的时间,然后更标准的时间一比较发现,跑10s就有一秒的时间误 ...
- Android开发学习笔记--一个有界面A+B的计算器
做了一个A+B的APP,虽然很简单,但是作为初学者还是弄了几个小时才弄好,什么东西都要看书或者百度,但最后成功了,还是很开心的,收货蛮大的.现在把过程写一下: 首先给出效果图: 一开始布局一直有问题, ...
随机推荐
- 简单几何(点的位置) POJ 1584 A Round Peg in a Ground Hole
题目传送门 题意:判断给定的多边形是否为凸的,peg(pig?)是否在多边形内,且以其为圆心的圆不超出多边形(擦着边也不行). 分析:判断凸多边形就用凸包,看看点集的个数是否为n.在多边形内用叉积方向 ...
- 位运算 2013年山东省赛 F Alice and Bob
题目传送门 /* 题意: 求(a0*x^(2^0)+1) * (a1 * x^(2^1)+1)*.......*(an-1 * x^(2^(n-1))+1) 式子中,x的p次方的系数 二进制位运算:p ...
- Google Code Jam 2010 Round 1B Problem A. File Fix-it
https://code.google.com/codejam/contest/635101/dashboard#s=p0 Problem On Unix computers, data is s ...
- IntelliJ IDEA 14 SVN无法正常使用问题
通过SVN导入项目 SVN checkout时候会出现如下错误: Cannot run program "svn" (in directory "E:\Projects& ...
- HttpClient工具类v1.7
package com.cucpay.fundswap.util; import java.io.IOException; import java.net.SocketTimeoutException ...
- CentoS 下报的 Requires: perl(:MODULE_COMPAT_5.8.8)
yum error requires: libtcmalloc.so.4 rpm -Uvh http://ceph.com/rpm-cuttlefish/el6/x86_64/ceph-release ...
- 李洪强-C语言3-数组
一.数组的概念 用来存储一组数据的构造数据类型 特点:只能存放一种类型的数据,如全部是int型或者全部是char型,数组里的数据成为元素. 二.数组的定义 格式: 类型 数组名[元素个数]: 举例:存 ...
- for循环下九九乘法表
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 9. Add the Block Storage service
Block Storage Server: 1. sudo apt-get install python-mysqldb 2. sudo apt-get install lvm2 3. 创建存 ...
- 用Editplus开发HTML
准备工作 设置Editplus默认的打开浏览器为系统默认浏览器 取消Editplus的临时缓存文件 ☆ 设置不生成临时文件 这里的临时文件,指的是.bak文件,当你在Editplus下修改任意一个文件 ...