Android activity实现多个界面的相互跳转(主要利用Intent)
Posted 雨后观山色
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android activity实现多个界面的相互跳转(主要利用Intent)相关的知识,希望对你有一定的参考价值。
1.activity介绍
一个activity就把他理解成一个页面
activity永远是全屏的。
2.新建activity流程
如图所示在com.lucky.test06的目录下,右击new--->Activity--->Empty Activity,会出现如下,点击finish即可。
3.页面跳转(利用Intent实现,页面跳转传值)
Intent称为意图,是android各大组件连接的桥梁
案例:test06
<1>页面1
布局页面:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" android:gravity="center"> <TextView android:id="@+id/tv_show1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> <!--android:layout_marginTop="20dp" 设置button组件顶部距离上一个组件的距离为20dp--> <Button android:id="@+id/bt_link1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="link1" /> </LinearLayout>
后台代码:
package com.lucky.test06; import android.app.Activity; import android.content.Intent; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { Button bt_link1; TextView tv_show1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt_link1=findViewById(R.id.bt_link1); //在XML文件中寻找组件 tv_show1=findViewById(R.id.tv_show1); bt_link1.setOnClickListener(new View.OnClickListener() { //绑定按钮点击事件 @Override public void onClick(View v) { Intent intent=new Intent(MainActivity.this,Main2Activity.class);//参数1为跳转页面,参数2为跳转目标页 intent.putExtra("001","雨后观山色"); //参数1为传输数据的代号,参数2为数据内容 startActivityForResult(intent,0x01);//参数1为intent,参数2为请求码 } }); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { // 接收另一个页面的返回的数据 super.onActivityResult(requestCode, resultCode, data); if(requestCode==0x01&&resultCode==0x02){ //判断请求码和结果码是否正确 int i=data.getIntExtra("002",0); tv_show1.setText(i+""); } } }
<2>页面2
页面布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" tools:context=".Main2Activity"> <TextView android:id="@+id/tv_show2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> <!--android:layout_marginTop="20dp" 设置button组件顶部距离上一个组件的距离为20dp--> <Button android:id="@+id/bt_link2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="link2" /> </LinearLayout>
后台代码:
package com.lucky.test06; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class Main2Activity extends AppCompatActivity { TextView tv_show2; Button bt_link2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); tv_show2=findViewById(R.id.tv_show2); bt_link2=findViewById(R.id.bt_link2); final Intent intent=getIntent(); //接收所传送过来的数据 String data=intent.getStringExtra("001"); //参数为页面1的字符的代号 tv_show2.setText(data); bt_link2.setOnClickListener(new View.OnClickListener() { //绑定按钮点击事件 @Override public void onClick(View v) { intent.putExtra("002",666); //参数1为数据代号,参数2为数据内容 setResult(0x02,intent); //参数1为结果码 finish();//退出Main2Activity页面 } }); } }
效果图:
以上是关于Android activity实现多个界面的相互跳转(主要利用Intent)的主要内容,如果未能解决你的问题,请参考以下文章
Android 多个Activity(Fragment)之间共享一个ViewModel对象,并扩展作用域注解