`

Intent对象的简单使用

阅读更多
如果要转换的页面不只是背景,颜色或文字内容的不同,而是Activity 的置换,那,那就不是单单改变Layout 就能完成的,尤其是需要传递的变量不像网页可以通过Cookie 或Session ,在程序里要移交主动权到另外一个Activity ,光靠先前技巧是办不到的.

而下面我们要讲的Intent 对象就是为解决这问题而生的,Intent 就如同其英文字义,是"想要"或"意图",之意,在主Activity 当中,告诉程序自己是什么,并想要前往哪里,这就是Intent 对象所处理的事了,本例子和前一个例子我们将实现同一个效果.

首先是布局main.xmlmylayout.xml

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="欢迎来到魏祝林的博客"
    />
<Button
    android:id="@+id/bt1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="点击进入Layout2"
/>
</LinearLayout>

mylayout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffffff"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Welcome to Mr Wei's blog"
    />
<Button
    android:id="@+id/bt2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="点击进入Layout1"
/>

</LinearLayout>

然后是控制程序IntentDemo.javaIntentDemo1.java 代码:

IntentDemo.java:

package com.android.test;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class IntentDemo extends Activity {
 
    private Button bt1;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        bt1 = (Button)findViewById(R.id.bt1);
       
        bt1.setOnClickListener(new Button.OnClickListener(){
            public void onClick(View v){
                //new 一个Intent对象,并指定要启动的Class
                Intent intent = new Intent();             
                intent.setClass(IntentDemo.this, IntentDemo1.class);         
                //调用一个新的Activity
                startActivity(intent);
                //关闭原本的Activity
                IntentDemo.this.finish();

            }
        });
    }
}

IntentDemo.java 同一目录内新建一个IntentDemo1.java

IntentDemo1.java:

package com.android.test;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class IntentDemo1 extends Activity {

    private Button bt2;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 载入mylayout.xml
        setContentView(R.layout.mylayout);

        bt2 = (Button) findViewById(R.id.bt2);
        bt2.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                // new 一个Intent对象,并指定要启动的Class
                Intent intent = new Intent();
                intent.setClass(IntentDemo1.this, IntentDemo.class);
                // 调用一个新的Activity
                startActivity(intent);
                // 关闭原本的Activity
                IntentDemo1.this.finish();

            }
        });
    }
}

最后是本例子的重点,添加另外一个Activity 所以必须在AndroidManifest.xml 中定义一个新的activty ,并给予名称name ,或则程序无法编译运行.新手很容易遇到这个问题.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.test"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".IntentDemo"
                  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="IntentDemo1"></activity>
    </application>
    <uses-sdk android:minSdkVersion="3" />

</manifest>

本例子所涉及的的全部代码已经全部贴出,最后执行之,将达到上述效果!本节到此结束~

 
分享到:
评论

相关推荐

    Intent的简单使用

    在文章链接(http://www.cnblogs.com/wangfengdange/p/4993648.html)中,作者详细讲解了如何使用Intent进行数据传递,包括基本类型、自定义对象、数组以及使用Parcelable的例子。这个教程对于初学者来说非常实用,...

    Intent传递对象

    Intent对象不仅可以携带基本类型的数据,如字符串、整数等,还可以通过序列化或Parcelable接口来传递复杂对象。本篇文章将深入探讨如何在Intent中利用Bundle来传递对象。 1. **Intent的基本概念** Intent是Android...

    android Intent传递对象数据

    在接收方,使用`getSerializableExtra()`获取对象: ```java MyObject receivedObject = (MyObject) getIntent().getSerializableExtra("myObject"); ``` #### (2) 优缺点 - **优点**:实现简单,无需额外的代码...

    intent传对象

    创建一个Intent对象,然后使用putExtra()方法将对象序列化后放入Intent。如下所示: ```java MyObject myObject = new MyObject(); myObject.setName("John"); myObject.setAge(30); Intent intent = new ...

    Android Intent传递对象

    当对象传递需求不频繁,对性能要求不高时,可以使用Serializable,因为它简单且无需额外维护。然而,如果需要频繁传递对象或者对性能有较高要求,推荐使用Parcelable,尽管实现起来稍显复杂,但其性能优势明显。 四...

    Android系列之Intent传递对象的几种实例方法

    总结起来,Android中的Intent对象传递主要有`Serializable`和`Parcelable`两种方式,其中`Parcelable`性能更优,但实现过程相对复杂;而`Serializable`则更为简单,但性能稍逊。开发者应根据具体需求和性能要求来...

    Xamarin.Android之Intent传递对象简单实例

    在Android应用开发中,Intent是一种强大的机制,用于在不同的组件之间进行通信,如活动(Activity)、服务(Service)以及广播...通过学习和实践这个实例,你将更深入地理解Xamarin.Android中的Intent对象传递机制。

    借助Intent实现Android工程中Activity之间Java对象的传递.zip

    本教程将深入探讨如何利用Intent实现Activity之间的Java对象传递。 首先,理解Intent的基本概念。Intent是一个意图声明,用于表达应用的某种动作,如打开一个网页、播放音乐等。它包含两部分:Action(动作)和Data...

    使用Intent打开网页

    1. 创建Intent对象: ```java Intent intent = new Intent(Intent.ACTION_VIEW); ``` ACTION_VIEW是Android中预定义的动作,表示我们要查看某个内容。 2. 设置数据URI: ```java intent.setData(Uri.parse(...

    常用Intent

    2. 创建一个Intent对象,并设置`ACTION_VIEW`动作及URI。 3. 启动该Intent。 示例代码如下: ```java Uri uri = Uri.parse("http://www.google.com"); Intent it = new Intent(Intent.ACTION_VIEW, uri); start...

    android中Intent传递对象的两种方法(Serializable,Parcelable)

    2. **放入Intent**:与Serializable类似,使用putExtra()方法,但是需要传入Parcelable对象: ```java MyObject myObject = new MyObject(); Intent intent = new Intent(this, TargetActivity.class); intent....

    通过Intent实现Activity之间的切换,并传递数据

    在Android系统中,启动一个新的Activity通常需要用到Intent对象。Intent主要有两种类型:显式Intent和隐式Intent。显式Intent指定了要启动的Activity的完整类名,而隐式Intent则不指定具体目标,而是基于Action、...

    Android应用:Intent打开另外一个Activity,Intent拨电话,Intent在2个Activity间传递参数

    本教程将详细讲解如何使用Intent来实现特定的功能,包括打开新的Activity,拨打电话,以及在两个Activity之间传递参数。 首先,让我们讨论如何使用Intent打开另一个Activity。在Android中,Activity是用户界面的...

    Android通过Intent传递数据

    在目标Activity中,使用`getIntent()`获取Intent对象,然后通过对应的`getExtra()`方法取出数据,如: ```java String receivedValue = getIntent().getStringExtra("key"); ``` 7. **注意点**: - 不要传递...

    简单intent的跳转,不传送数据

    1. **创建Intent对象**:在需要触发跳转的按钮点击事件处理方法中,首先创建一个Intent实例,指定源Activity(当前Activity)和目标Activity(需要跳转到的Activity)。例如: ```java Intent intent = new Intent...

    隐式Intent

    首先,创建一个Intent对象,设置Action为`ACTION_SEND`,表示我们要执行发送操作。然后,设置Type为`"text/plain"`,表示发送的数据类型是纯文本。最后,将要发送的文本内容通过`putExtra()`方法添加到Intent中。...

    使用Intent拨打电话.zip

    首先,Intent是一个对象,它包含了启动一个动作的意图和一些附加数据。在Android中,Intent分为显式Intent和隐式Intent两种类型。显式Intent通过指定目标组件的类名来明确指定要启动哪个组件;而隐式Intent则是通过...

    intent的深入分析

    1. 使用putExtra()和getExtra()进行简单数据类型(如String、Integer等)的传递。 2. 使用putParcelableExtra()和getParcelableExtra()传递复杂的对象,如自定义类,需实现Parcelable接口。 3. 对于大对象或复杂数据...

Global site tag (gtag.js) - Google Analytics