スタートを表示
Intent it = new Intent(this, DialogActivity.class);
startActivity(it);
現在のアプリケーションで通常のアクティビティを開始します。
暗黙の開始
暗黙的起動のパラメータ受け渡し方法は非常に柔軟で、コンパイル中にエラーが発生せず、アプリケーションに属さない多くのアクティビティ(システムアクティビティ)を開くことができます。
システムアクティビティを暗黙的に開始します
//参数1:action,是Activity的别名
//参数2:Uri对象,打开的路径,通过协议来具体确定打开什么Activity
Intent it = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.imooc.com"));
startActivity(it);
通常のアクティビティを暗黙的に開始します
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="abc" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Intent it = new Intent("abc");
startActivity(it);
startActivityForResult
戻り値を使用してアクティビティを呼び出す
最初の活動
class LearnActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_learn)
val it2 = Intent(this, LearnActivity2::class.java)
//参数1:intent
//参数2:requestCode:用来区别该结果是来自于哪个Activity
startActivityForResult(it2, 1000)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
// resultCode: 0 RESULT_CANCEL 取消
// resultCode: -1 RESULT_OK 正确处理完后返回
Log.e("Tag", "resultCode$requestCode")
}
}
2番目のアクティビティ
class LearnActivity2 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_learn2)
// 设置结果
val it = Intent() //此时的意图不作为跳转界面使用,而是用来传递数据
it.putExtra("myMsg", "message")
//参数1:结果码,在上一个界面的onActivityResult方法中通过resultCode获取
//参数2:意图对象,主要作用:放数据,在上一个界面的onActivityResult中通过data的获取
setResult(RESULT_OK, it)
finish()
}
}