当前位置: 移动技术网 > 移动技术>移动开发>Android > Android编程中Intent实现页面跳转功能详解

Android编程中Intent实现页面跳转功能详解

2019年07月24日  | 移动技术网移动技术  | 我要评论

本文实例讲述了android编程中intent实现页面跳转功能。分享给大家供大家参考,具体如下:

安卓四大组件:activity、service、broadcast receiver、content provider

intent实现页面之间跳转

1、无返回值

startactivity(intent)

2、有返回值

startactivityforresult(intent,requestcode);
onactivityresult(int requestcode,int resultcode,intent data)
setresult(resultcode,data);

factivity.java

package com.example.hello;
import android.app.activity;
import android.content.context;
import android.content.intent;
import android.os.bundle;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.button;
import android.widget.textview;
public class factivity extends activity{
  private button bt1;
  private context mcontext;
  private button bt2;
  private textview tv;
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.factivity);
    /*
     * 通过点击bt1实现页面之间的跳转
     * 1.startactivity来实现跳转
     * 1>初始换intent
     */
    mcontext = this;
    bt1 = (button) findviewbyid(r.id.button1_first);
    bt2 = (button) findviewbyid(r.id.button2_second);
    tv = (textview) findviewbyid(r.id.textview1);
    //注册点击事件
    bt1.setonclicklistener(new onclicklistener() {
      @override
      public void onclick(view v) {
        /**
         * 第一个参数,上下文对象this
         * 第二个参数,目标文件
         */
        intent intent = new intent(mcontext, sactivity.class);
        startactivity(intent);
      }
    });
    /*
     * 通过startactivityforresult
     * 第二个参数是请求的一个标识
     */
    bt2.setonclicklistener(new onclicklistener() {
      @override
      public void onclick(view v) {
        intent intent = new intent(mcontext, sactivity.class);
        startactivityforresult(intent, 1);
      }
    });
  }
  /*
   * 通过startactivityforresult 跳转,接受返回数据的方法
   * requestcode:请求标识
   * resultcode:第二个页面返回的标识
   * data 第二个页面回传的数据
   */
  @override
  protected void onactivityresult(int requestcode, int resultcode, intent data) {
    super.onactivityresult(requestcode, resultcode, data);
    if (requestcode == 1 && resultcode == 2) {
      string content = data.getstringextra("data");
      tv.settext(content);
    }
  }
}

factivity.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" >
  <button
    android:id="@+id/button1_first"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="第一种启动方式" />
  <button
    android:id="@+id/button2_second"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="第二种启动方式" />
  <textview
    android:id="@+id/textview1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="把第二个页面回传的数据显示出来" />
</linearlayout>

sactivity.java

package com.example.hello;
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;
public class sactivity extends activity{
  private button bt;
  private string content = "你好";
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.sactivity);
    /*
     * 第二个页面什么时候回传数据给第一个页面
     * 回传到第一个页面的,实际上是一个intent对象
     */
    bt = (button) findviewbyid(r.id.button1);
    bt.setonclicklistener(new onclicklistener() {
      @override
      public void onclick(view v) {
        intent data = new intent();
        data.putextra("data", content);
        setresult(2, data);
        //结束当前页面
        finish();
      }
    });
  }
}

sactivity.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" >
  <button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="button" />
</linearlayout>

androidmanifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.hello"
  android:versioncode="1"
  android:versionname="1.0" >
  <uses-sdk
    android:minsdkversion="8"
    android:targetsdkversion="21" />
  <application
    android:allowbackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/apptheme" >
    <activity
      android:name=".mainactivity"
      android:label="@string/app_name" >
    </activity>
    <activity
      android:name=".factivity"
      android:label="@string/app_name" >
      <!-- 首启动项 -->
      <intent-filter>
        <action android:name="android.intent.action.main" />
        <category android:name="android.intent.category.launcher" />
      </intent-filter>
    </activity>
    <activity
      android:name=".sactivity"
      android:label="@string/app_name" >
    </activity>
  </application>
</manifest>

用浏览器打开网页

uri uri = uri.parse("http://www.baidu.com");
intent intent = new intent(intent.action_view, uri);
startactivity(intent);

更多关于android相关内容感兴趣的读者可查看本站专题:《android图形与图像处理技巧总结》、《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网