实现点击按钮,发送消息并跳转到另一个Activity
- MainActivity添加SendMessage方法
const val EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)}/** Called when the user taps the Send button */fun sendMessage(view: View) {val intent = Intent(this, DisplayMessageActivity::class.java).apply {putExtra(EXTRA_MESSAGE, "my message")}startActivity(intent)}
}
通过 EXTRA_MESSAGE
传递消息: "my message"
给新的Activity
Intent 构造函数会获取两个参数:Context(this) 和 Class(要启动的 activity)
putExtra参数要传入独一无二的字串和要传递的消息
startActivity() 方法将启动一个由 Intent 指定的 DisplayMessageActivity 实例
- 添加Send按钮
拖动一个Button到activity_main.xml中,并定义点击时调用sendMessage
方法
btnNumbers.setOnClickListener{Log.e("click", "click btn Numbers")val intent = Intent(this, NumbersMainActivity::class.java).apply{putExtra(EXTRA_NUMBERS_MESSAGE, "numbers message")}startActivity(intent)
}
此时NumbersMainActivity还没有创建,显示红色
- 创建新的 Activity
右键MainActivity.kt的文件夹,新建Empty Activity,填入DisplayMessageActivity,在其中写入
class NumbersMainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_numbers_main)val message = intent.getStringExtra(EXTRA_NUMBERS_MESSAGE)val textView = findViewById<TextView>(R.id.textViewNumbers).apply {text = message}}
}
修改 activity_numbers_main.xml, 拖入一个 TextView元素,并设置id为textViewNumbers,用于显示收到的消息
- 返回按钮 (向上导航)
修改 AndroidManifest.xml
的 <activity>
<activity android:name=".DisplayMessageActivity"android:parentActivityName=".MainActivity"><!-- The meta-data tag is required if you support API level 15 and lower --><meta-dataandroid:name="android.support.PARENT_ACTIVITY"android:value=".MainActivity" />
</activity>
就是这个