使用intent由一个Activity启动另外一个Activity

先创建一个Android Application Project,工程名为Activity_02,Activity名为Activity02,在Activity_02的src文件下的创建工程时生成的包右击new一个class,命名为OtherActivity,在res文件夹下的layout文件夹右击new 一个file命名为other.xml。给Activity02的layout文件下的第一个也就是原生的xml文件(我 的文件名是Activity_activity02.xml)添加按钮控件Button,代码如下
<Button
    android:id="@+id/myButton"                 //id为myButton以用于在Activity02.java调用
    android:layout_width="fill_parent"          //宽度填满父控件
    android:layout_height="wrap_content"   //高度根据内容拉伸
    />
在Activity02.java的onCreate函数中第一步先设置layout文件以启动界面,然后使用findViewById()声明控件对象获取控件myButton,并且用对象的setText函数给Button控件添加文字"Button",代码如下

private Button myButton=null;         //定义成员变量myButton;
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_activity02);      //设置Activity02的layout文件
  myButton=(Button)findViewById(R.id.myButton); //
  myButton.setText("Button");
 }
在第二个xml文件other.xml添加文本显示控件TextView。
<TextView
    android:id="@+id/myTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"       //顶端与父控件顶端对齐
    android:layout_centerHorizontal="true" /> //置于水平中心
在OtherActivity.java中使OtherActivity继承Activity,需import android.app.Activity,复写OnCreate方法,首先设置layout文件,然后声明控件对象myTextView,使用setText方法赋值,这里在value文件夹下的String.xml中添加值other,使用标签
<string name="other">OtherActiviy</string>
OtherActivity.java的代码如下
package com.example.activity_02;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
public class OtherActivity extends Activity{
 private TextView myTextView=null;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.other); //设置布局文件
  myTextView=(TextView)findViewById(R.id.myTextView);
  myTextView.setText(R.string.other);
 }
}
新生成的OtherActivity在AndroidManifest.xml中进行注册,代码如下
  <activity
            android:name=".OtherActivity"
            android:label="@string/other"/>
在Activity02.java中新建类MyButtonListener ,该类继承监听器OnClickListener接口,复写Onclick函数实现监听器,生成intent对象,调用SetClass实现从一个activity跳转到另一个activity,
class MyButtonListener implements OnClickListener{ //java GUI
  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   Intent intent=new Intent();  //生成intent对象
   intent.setClass(Activity02.this,OtherActivity.class);//intent请求对象为第二个参数
//第一个参数是当前类Activity02的类对象,第二个参数是OtherActivity的类对象
   Activity02.this.startActivity(intent);    //调用Acticity的startActivity函数启动OtherActivity
  }
 }
在Activity02.java的onCreate方法中将类MybuttonListener捆绑在按钮myButton上实现点击按钮跳转。

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_activity02);
  myButton=(Button)findViewById(R.id.myButton);
  myButton.setText("Button");
  myButton.setOnClickListener(new MyButtonListener());//捆绑
 }
使用intent 在两个Activity之间传递数据,在Activity02中,调用putExtra()函数,参数为键值对,存入数据,在OtherActivity中获取Activity02传递的intent对象,使用getIntent()函数获取对象,再传递给OtherActivity的intent对象,调用对象的getStringExtra()得到键值对的键对应的键值对的值。

Activity02.java中实现的代码

class MyButtonListener implements OnClickListener{ //java GUI
  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   Intent intent=new Intent();//生成Activity02的intent对象
   intent.putExtra("testIntent", "123");
   intent.setClass(Activity02.this,OtherActivity.class);
   Activity02.this.startActivity(intent);//
    }
 }

OtherActivity.java中实现的代码
protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.other); //设置布局文件
  Intent intent=getIntent();         //生成OtherActivity的intent对象,参数为Activity02的intent对象
  String value=intent.getStringExtra("testIntent");
  myTextView=(TextView)findViewById(R.id.myTextView);
  myTextView.setText(value); //获取Activity02传递的键值对的值,打印在TextView控件。
 }

使用Intent发送消息,复写onClick方法,使用Uri,进入发送短信的界面,这里进行跳转的两个Activity在不同的应用程序里,通过Uri跳转到了短信应用程序的发送界面Activity。
public void onClick(View v) {
   // TODO Auto-generated method stub

    Uri uri= Uri.parse("smsto:/0800000123");
    Intent intent=new Intent(Intent.ACTION_SENDTO,uri); //含参数构造函数,参数为系统自带发送短信的常量
    intent.putExtra("sms_body", "The SMS TEXT");
    startActivity(intent);
   
  }



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值