Day 4 | Activity

画面转换

Intent是应用程序元件(Activity、Service、BroadcastReceiver、ContentProvider)的沟通桥梁,用来实现多个画面转换

startActivity(Intent(this, SecActivity::class.java))

用上述程序码,可让SecActivity覆盖於this上

传递资料至下一个画面

传送单笔

  1. 宣告切换页面的Intent
  2. 把资料放入Intent
  3. 发送Intent
var intent = Intent(this, SecActivity::class.java)
intent.putExtra("key","value")
startActivity(intent)

传送多笔

var bundle = Bundle()
bundle.putInt("key1",123)
bundle.putString("key2","ABC")
var intent = Intent(this, SecActivity::class.java)
intent.putExtras(bundle)
startActivity(intent)

接收数据

intent?.extras>.let{ //判断intent不为空且有夹带资料
		val value1 = it.getInt("key1")
		val value2 = it.getInt("key2")
}

返回资料至上一个画面

SAFR图片.jpg

//取回资料
override fun onActivityResult(requestCode: Int,resultCode: Int, data:Intent?) {
    super.onActivityResult(requestCode,resultCode,data)
        
				data?.extras?.let{
						if(requestCode ==1 && requestCode == Activity.RESULT_OK){
								...//取得返回资料
						}
		}
}
//建立资料
override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
				var bundle = Bundle()
				bundle.putInt("key1",123)
				bundle.putString("key2","ABC")
				var intent = Intent(this, SecActivity::class.java)
				intent.putExtras(bundle)
				startActivityForResult(intent,1) 
}

  • requestCode是一种需求发送的识别编号,在启动对象时给予此编号,目的是让需求发送者与接收者能够有识别的方式
  • onActivityResult()会等待SecActivity返回结果,并根据requestCode识别返回对象,以及requestCode判断在SecActivity中执行的情况。
setResult(Activity.RESULT_OK,intent) //设定要返回的资料
finish() //结束自身周期,
  • resultCode是一种向需求发送者回报执行结果的识别编号,例如:执行成功时用0表示,失败时用-1表示,并回报给MainActivity处理

<<:  第54天~

>>:  [Day2] 论前端框架的好处及重要性~从自己刻到学习共通语言(上篇)

【Vue】串 API 前置作业|Axios 是什麽?

Axios 是一个 Promise based 的HTTP 请求工具。 那 Promise base...

[ Day 29 | Essay ] 作梦也会梦到内心最深刻的恐惧

上礼拜连假前交出了修改後的电商网站作业, 已经修改到第三版了足足花了一个月(不过不是以每天修改 24...

Day 26:「按钮博物馆」- 轻松变化各种按钮元件

哈罗大家好~ 不知道昨天的进度条做的怎麽样? 想要交作业的人可以贴在昨天的留言区给我呦! 那我们今...

Day 11:合并排序(mergesort)

合并排序(merge sort 或 mergesort)是另一种采用分治法的排序演算法。 它的步骤是...