欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发笔记之Intent初级学习教程

程序员文章站 2024-02-25 11:23:40
本文讲述了android开发笔记之intent初级学习教程。分享给大家供大家参考,具体如下: 项目创建步骤: new android project-> pro...

本文讲述了android开发笔记之intent初级学习教程。分享给大家供大家参考,具体如下:

项目创建步骤:

new android project->

project name:intent

build target:android 2.2

application name:intentdemo

package name:com.b510.intent.activity

create activity:mainactivity

min sdk version:8

finish

1、拨打电话

按一个按钮,启动打电话程序

2、编辑main.xml

<!-- 打电话按钮 -->
<button
 android:id="@+id/mainbtn"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/mainbtn"
/>

3、编辑mainactivity.java文件

/*
   * 定义一个mainbtn变量
*/
private button mainbtn=null;
public void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.main);
    //从r.java文件中通过id找到main.xml文件中配置的button
    mainbtn=(button)findviewbyid(r.id.mainbtn);
    //设置button的当点击时的监听器
    mainbtn.setonclicklistener(listener);
  }
  private onclicklistener listener=new onclicklistener() {
    @override
    public void onclick(view v) {
      //申明一个intent
      intent intent=new intent();
      //设置action为打电话
      intent.setaction(intent.action_call);
      //给5554手机打电话,号码前面的"tel:"是必须有的字段
      intent.setdata(uri.parse("tel:5554"));
      //启动activity
      startactivity(intent);
    }
  };
}

4、编辑androidmanifest.xml文件

</application>
   <!-- 添加允许打电话的功能 的权限-->
   <uses-permission android:name="android.permission.call_phone"/>

5、发送短信

发送短信和拨打电话类似

5.1、修改mainactivity.java文件

private onclicklistener listener=new onclicklistener() {
    @override
    public void onclick(view v) {
      //申明一个intent
      intent intent=new intent();
      //设置action为打电话
      intent.setaction(intent.action_call);
      //给5554手机打电话,号码前面的"tel:"是必须有的字段
      intent.setdata(uri.parse("tel:5554"));
      //启动activity
      startactivity(intent);
    }
};

5.2、修改androidmanifest.xml文件

<!-- 添加允许发送短信的功能的权限 -->
   <uses-permission android:name="android.permission.send_sms"/>

6、启动新的activity

前面说到用intent来拨打电话和发送短信,主要是介绍了intent的一些简单方法,这里intent启动了另一个activity,在之前的内容都是在一个activity中进行操作的。但是在实际应用中,我们会有很多个activity,如何从一个activity跳到其他的activity,这时就需要用到intent了,既然有多个activity,那么我们就要创建另一个activity文件,如:hongtenactivity.java

6.1、编辑hongten.xml文件

<textview 
 android:id="@+id/hongtentext"
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" 
 android:text="@string/hello"
/>
<!-- 跳转到另一个mainactivity -->
<button
 android:id="@+id/hongtenbtn"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/hongtenbtn"
/>

6.2、编辑hongtenactivity.java文件

public class hongtenactivity extends activity {
/*
   * 定义一个hongtenbtn变量
*/
  private button hongtenbtn = null;
  /*
   * 定义一个hongtentext变量
*/
  private textview hongtentext = null;
  public final static int result_code = 1;
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.hongten);
    // 首先获得从mainactivity类传递过来的intent
    intent intent = getintent();
    // 在mainactivity那边是setextras(name,key)
// 在这里就是getextras()了,他的返回类型是一个bundle类型
    bundle bundle = intent.getextras();
    string text = bundle.getstring("str");
    hongtentext = (textview) findviewbyid(r.id.hongtentext);
    hongtentext.settext(text + "这是从mainactivity类传递过来的参数");
    hongtenbtn = (button) findviewbyid(r.id.hongtenbtn);
    hongtenbtn.setonclicklistener(backmainactivity);
  }
  private onclicklistener backmainactivity = new onclicklistener() {
    @override
    public void onclick(view v) {
      intent intent = new intent();
      intent.setclass(hongtenactivity.this, mainactivity.class);
      intent.putextra("back", "hello mainactivity");
      // 启动activity
// startactivity(intent);
      setresult(result_code, intent);
      // 结束hongtenactivity类,返回到mainactivity类,
//并且把名字为"back"参数的字符串传递到mainactivity类中
//同时会调用mainactivity类中的onactivityresult()方法
      finish();
    }
  };
}

6.3、修改androidmanifest.xml文件

<activity android:name=".hongtenactivity"
  android:label="@string/hongtenbtn">  
</activity>

6.4、编辑mainactivity.java文件

/*
   * 定义一个gotoactivitybtn变量
*/
  private button gotoactivitybtn=null;  gotoactivitybtn=(button)findviewbyid(r.id.gotoactivitybtn);
    gotoactivitybtn.setonclicklistener(gotootheractivity);
  private onclicklistener gotootheractivity=new onclicklistener() {
    @override
    public void onclick(view v) {
      //申明一个intent
      intent intent=new intent();
      //跳转到命名为hongtenactivity的activity
      intent.setclass(mainactivity.this, hongtenactivity.class);
      //把"hello hongtenactivity"字符串以名字为"str"作为参数传递到hongtenactivity类中
      intent.putextra("str", "hello hongtenactivity");
      //启动activity
//startactivity(intent);
      startactivityforresult(intent, request_code);
    }
  };
  /**
   * <li><b>参数:</b></li></br>
   *   <h3>requestcode: 是上面request_code</h3></br>
   *   <h3>resultcode: 是hongtenactivity类中的result_code</h3></br>
   *   <h3>data: 是hongtenactivity类中传递过来的参数</h3>
*/
  @override
  protected void onactivityresult(int requestcode, int resultcode, intent data) {
    //这里是和mainactivity中的定义的request_code比较
//如果我们在mainactivity类中有不止一个button时,
//都调用了startactivityforresult()方法,那么我们的程序就
//不知道是那个button了,但是有了这样的判断,程序就能清楚的知道是那个button    
    if(requestcode==request_code){
      //这是和上面的if()语句有相同的道理,也是确定返回的是那个activity的值
      if(resultcode==hongtenactivity.result_code){
        //取得hongtenactivity类中传递过来的信息
        bundle bundle=data.getextras();
        string text=bundle.getstring("back");
        //把获得的信息显示出来
        toast.maketext(mainactivity.this, text, toast.length_long).show();
      }
    }
}

6.5、编辑string.xml文件

<string name="hello">hello world, mainactivity!</string>
<string name="app_name">intentdemo</string>
<string name="hongtenbtn">去向mainactivity</string>
<string name="gotoactivitybtn">去向hongtenactivity</string>
<string name="secondbtn">second</string>
<string name="mainbtn">call</string>

更多关于android相关内容感兴趣的读者可查看本站专题:《android开发入门与进阶教程》、《android多媒体操作技巧汇总(音频,视频,录音等)》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。