★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的值,即传递过来的数据
}
}
在上面我标明了每句代码的用意,希望你们喜欢,下次再会。