在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"?> <LinearLayout 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"> <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我是Activity1"/> <Button android:id="@+id/bt1" android:text="点击跳转到Activity2(带数据)" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:id="@+id/bt2" android:text="点击跳转到Activity2(不带数据)" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>
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"?> <LinearLayout 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"> <TextView android:textSize="30sp" android:text="我是Activity2" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:textSize="30sp" android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>
效果
带参数的跳转效果
不带参数的跳转
好啦 就是这样
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦