在android中有许多的界面Activity(活动),我们经常要在各个界面中跳转来跳转去,有时候还需要传递数据,所以给大家介绍一下Intent(意图)
在我们跳转的时候需要用到Intent意图来指定,并且Intent也可以带数据传递,下面上代码
新建一个工程,并且新建一个Activity,此时我们的项目中就有两个Activity,现在我们从MainActivity跳到第二个Activity中
MainActivity代码public class MainActivity extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.bt1).setOnClickListener(this);//带参数的点击
findViewById(R.id.bt2).setOnClickListener(this);//不带参数的点击
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.bt1:
//新建意图,第一个参数是所在的Activity上下文,第二个参数是目标Activity的class对象
Intent intent1 = new Intent(MainActivity.this, Activity2.class);
//以key value的形式传递数据key是(name)
intent1.putExtra("name","我是MainActivity传过去的数据");
//开始意图
startActivity(intent1);
break;
case R.id.bt2:
//新建意图,第一个参数是所在的Activity上下文,第二个参数是目标Activity的class对象
Intent intent = new Intent(MainActivity.this, Activity2.class);
//开始意图
startActivity(intent);
break;
}
}
}
主布局<?xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="comiptv.example.vincent.videotest.MainActivity">
android:textSize="30sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是Activity1"/>
android:id="@+id/bt1"
android:text="点击跳转到Activity2(带数据)"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:id="@+id/bt2"
android:text="点击跳转到Activity2(不带数据)"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Activity2代码private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
//通过getIntent拿到intent
Intent intent = getIntent();
//通过key值(name)拿到数据
String name = intent.getStringExtra("name");
tv = (TextView) findViewById(R.id.tv);
if (null!=name){
tv.setText(name);
}
}
Activity2布局<?xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="comiptv.example.vincent.videotest.Activity2">
android:textSize="30sp"
android:text="我是Activity2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:textSize="30sp"
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
效果
带参数的跳转效果
不带参数的跳转
好啦 就是这样