Android开发基础之Intent

Intent的对象包含的一组信息

首先我们要先了解一下下面这些对象的含义是什么?

Component name:要启动的组件或哪个activity的名字    Action:指定要做的动作

Data:传送的数据                                                             Extras:另外的键值对

当然还有其他的对象,但是在这里主要是这些对象使用的最频繁。

下面就是Intent的基本使用方法:

Intent intent = new Intent();
intent.setClass(Activity1.this,Activity2.class);//这里表示你要从Activity1跳转到Activity2
startActivity(intent);//开始跳转
下面是Intent数据传送的方法

intent.putExtra("test","123");
Intent接收数据的方法是

ntent intent = new Intent()
intent.getIntent();
String value = intent.getStringExtra("test");
下面是一个实例的演示,首先我们来看看这个app的效果

                     图1                               图2

图1是没有点击按钮前的效果,图2是点击按钮之后的效果,在这里我在Activityone里面放了一个TextView和一个Button控件,在Activitytwo中放了两个TextView控件。

那我们来看下源代码吧!

首先我在xml中定义了几个string的文件

<resources>
    <string name="app_name">Intent</string>
    <string name="TextViewone">Welcome to Acivityone</string>
    <string name="TextViewtwo">Welcome to Acivitytwo</string>
</resources>

下面是Activityone的布局文件:

<?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"
    >
    <TextView
        android:id="@+id/tv1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textSize="40dp"
        />
    <Button
        android:id="@+id/bt1"
        android:layout_marginTop="100dp"
        android:layout_gravity="center"
        android:layout_width="140dp"
        android:layout_height="60dp" />

</LinearLayout>
然后是Activityone的java代码

package com.example.zhangrenjie.intent;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class Activityone extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.one);//找到该Activity的xml布局文件
        TextView tv1 = (TextView) findViewById(R.id.tv1);//实例化TextView控件
        Button bt1 = (Button) findViewById(R.id.bt1);//实例化Button控件
        tv1.setText(R.string.TextViewone);//设置TextView显示的内容
        bt1.setText("跳到Activitytwo");//设置Button上显示的内容
        bt1.setOnClickListener(new View.OnClickListener() { 
        //为Button绑定监听事件
            @Override
            public void onClick(View v) {
            //在这个方法里面表示点击Button后要做的动作
               Intent intent = new Intent();//创建一个Intent对象
                intent.putExtra("one","123");//创建一个键值对进行传递
                intent.setClass(Activityone.this,Activitytwo.class);//从Activityone跳转到Activitytwo
                startActivity(intent);//开始跳转
            }
        });
    }
}
然后是Activitytwo的布局文件:

<?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"
    >
    <TextView
        android:id="@+id/tv1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textSize="40dp"
        />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="40dp"
        android:layout_marginTop="100dp"
        android:gravity="center" />
</LinearLayout>
还有Activitytwo的java代码:

package com.example.zhangrenjie.intent;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class Activitytwo extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.two);
        Intent intent = getIntent();//获取上个Activity传递过来的Intent对象
        String value = intent.getStringExtra("one");//获取传递过来的数据
        TextView tv1 = (TextView) findViewById(R.id.tv1);
        TextView tv2 = (TextView) findViewById(R.id.tv2);
        tv1.setText(R.string.TextViewtwo);//设置tv1这个TextView控件的显示内容
        tv2.setText("传递过来的数据为:"+value);//显示value的值,即传递过来的数据
    }
}
在上面我标明了每句代码的用意,希望你们喜欢,下次再会。




发布了15 篇原创文章 · 获赞 4 · 访问量 8538

猜你喜欢

转载自blog.csdn.net/feili12138/article/details/73287084