首页 > 系统 > Android > 正文

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

2019-12-12 02:22:45
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表