[Android Studio] -- Day 3 Activity练习

前言

今天将针对activity的跳转来复习复习


正文

这次采用bundle来传值,并区分startActivity()和startActivityForResult()

startActivity()

从Activity1跳转到Activity2

  • Activity1
    按下按钮後进行跳转
button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                temp = editText.getText().toString();
                bundle.putString("input",temp);
                intent.putExtras(bundle);
                startActivity(intent);

            }
        });
  • Activity2
    显示文字,按下按钮後返回(关闭Activity2)
        textView=findViewById(R.id.Text);
        button=findViewById(R.id.b2);

        Bundle bundle=this.getIntent().getExtras();
        String msg=bundle.getString("input");
        textView.setText(""+msg);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });

https://ithelp.ithome.com.tw/upload/images/20210130/20134772o934jNtw1Z.pnghttps://ithelp.ithome.com.tw/upload/images/20210130/201347722asR7WIx1j.png

startActivityForResult()

从Activity1跳转到Activity2并等待Activity2结果

  • Activity1
    按下按钮後进行跳转
button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                temp = editText.getText().toString();
                bundle.putString("input",temp);
                intent.putExtras(bundle);
                //更改
                startActivityForResult(intent,0);

            }
        });

用来接收Activity2回传回来的值,显示在textView上

@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //333是自订义,要跟Activity2一样就行
        if(resultCode==333){
            Bundle bundle=data.getExtras();
            String msg=bundle.getString("input");
            textView.setText(""+msg);
        }

    }
  • Activity2
    显示文字,按下按钮把刚刚放在intent的东西传过去Activity1後关闭Activity2
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MainActivity2.this.setResult(333,intent);
                finish();
            }
        });

https://ithelp.ithome.com.tw/upload/images/20210130/20134772Rp3vF52XSv.png


结语

intent是要出国的你,bundle是行李箱。

  • 将东西(temp)放进(put)行李箱里,放进去要知道她叫甚麽("input")
    bundle.putString("input",temp);
  • 行李箱跟你走,行李箱放进你手里面
    intent.putExtras(bundle);
  • 要出国了喔,不带东西回家
    startActivity(intent);
  • 要出国了喔,带东西回家
    startActivityForResult(intent,0);
  • 到家,拿对箱子(resultCode)再开箱
    onActivityResult()

<<:  JS30 Day 26 - Stripe Follow Along Nav学习笔记

>>:  新手任务

Swift 新手-App Launch Screen 设计&程序码互动

设计 Launch Screen 会需要用到两个档案,分别是: Main.storyboard(用途...

Hook 的规则 ( Day18 )

使用 Hook 官方设定需要遵守的两个规则,并提供了一个 linter plugin 来自动化地实行...

Day6一个网站总需要一点首页吧!

延续昨天 今天从首页开始下手 我的首页想放入科内同仁的文章(类似ptt部落格的感觉) 跟之前一样去v...

Day 33 (MySQL)

1.安装 (1)官方网站(只有MySQL) https://dev.mysql.com/ (2)下载...

2021法遵科技与电脑稽核专题竞赛-贺云科大、逢甲、北商大、中正、致理科大、亚洲科大等学校队伍获奖,培育智慧法遵与AI稽核人才迈向国际~

本次专题竞赛,由国际电脑稽核教育协会(ICAEA)、国立中正大学会计与资讯科技学系、国立政治大学产学...