Android activity实现多个界面的相互跳转(主要利用Intent)

1.新建activity流程

技术图片

如图所示在com.lucky.test06的目录下,右击new—>Activity—>Empty Activity,会出现如下,点击finish即可。

技术图片

2.页面跳转(利用Intent实现)

Intent称为意图,是Android各大组件连接的桥梁

<1>页面1

public class MainActivity extends AppCompatActivity {
    Button button;
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button=findViewById(R.id.button);  //在XML文件中寻找组件
        textView=findViewById(R.id.textView);

        button.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);
            textView.setText(i+"");
        }
    }
}

<2>页面2

public class Main2Activity extends AppCompatActivity {
    TextView textView2;
    Button button2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        textView2=findViewById(R.id.textView2);
        button2=findViewById(R.id.button2);
        final Intent intent=getIntent(); //接收所传送过来的数据
        String data=intent.getStringExtra("001");  //参数为页面1的字符的代号
        textView2.setText(data);
        button2.setOnClickListener(new View.OnClickListener() {  //绑定按钮点击事件
            @Override
            public void onClick(View v) {
                intent.putExtra("002",666); //参数1为数据代号,参数2为数据内容
                setResult(0x02,intent);   //参数1为结果码
                finish();//退出Main2Activity页面
            }
        });
    }
}