本文共 4391 字,大约阅读时间需要 14 分钟。
2.1.1 我们把昨天项目中的按钮先删除掉,并为TextView添加一个id属性
2.1.2 在StartActivity中把昨天设置的按钮监听器代码删掉,并填写新的代码
public class StartActivity extends AppCompatActivity { Handler mHandler = new Handler(); // 创建一个 Handler对象 @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_start); // 获取布局文件中的 TextView控件 TextView textView = findViewById(R.id.title_text); // 获取 TextView中的标题 final String title = textView.getText().toString(); // 发送一个可执行对象 mHandler.postDelayed(new Runnable() { @Override public void run() { // 跳转到 MainActivity Intent intent = new Intent(StartActivity.this, MainActivity.class); // 将标题以键值对的形式存入intent意图中 intent.putExtra("title", title); startActivity(intent); } }, 3000);// 3秒后跳转 }}
什么是 ?
postDelayed(Runnable, long) : 介绍:
传参:postDelayed中需要传两个参数,一个是Runnable对象,一个是以毫秒为单位的时间
作用:postDelayed经常被用于延时任务,或者定时器。
用法:
创建一个Handler对象;
创建一个Runnable对象;
Handler.postDelayed(runnable, 1000)
如果需要清除使用这个方法:Handler.removeCallbacks(runnable); // 清除定时器
2.1.3 在 MainActivity中取到 StartActivity中传递过来的标题
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = getIntent(); if (intent != null) { // 获取 StartActivity中保存的键,通过键即可拿到值 String title = intent.getStringExtra("title"); Toast.makeText(this, title, Toast.LENGTH_SHORT).show(); } }}
2.1.4 预览效果
2.2.1 新建一个UserInfo类,并实现 Serializable接口
public class UserInfo implements Serializable { private String mUsername; private Integer mAge; public UserInfo() { } public UserInfo(String mUsername, Integer mAge) { this.mUsername = mUsername; this.mAge = mAge; } public String getmUsername() { return mUsername; } public void setmUsername(String mUsername) { this.mUsername = mUsername; } public Integer getmAge() { return mAge; } public void setmAge(Integer mAge) { this.mAge = mAge; }}
2.2.2 在StartActivity中创建UserInfo对象,并存入Intent中
public class StartActivity extends AppCompatActivity { Handler mHandler = new Handler(); // 创建一个 Handler对象 UserInfo mUserInfo = new UserInfo("小明", 18); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_start); // 获取布局文件中的 TextView控件 TextView textView = findViewById(R.id.title_text); // 获取 TextView中的标题 final String title = textView.getText().toString(); mHandler.postDelayed(new Runnable() { @Override public void run() { // 跳转到 MainActivity Intent intent = new Intent(StartActivity.this, MainActivity.class); // 将标题以键值对的形式存入intent意图中 intent.putExtra("title", title); // 将 UserInfo存入 intent中 intent.putExtra("userInfo", mUserInfo); startActivity(intent); } }, 3000);// 3秒后跳转 }}
2.2.3 在 MainActivity 中取到 StartActivity 中传递过来的 UserInfo 对象
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = getIntent(); if (intent != null) { // 获取 StartActivity中保存的键,通过键即可拿到值 String title = intent.getStringExtra("title"); UserInfo userInfo = (UserInfo) intent.getSerializableExtra("userInfo"); Toast.makeText(this, "名字:" + userInfo.getmUsername() + " , 年龄:" + userInfo.getmAge(), Toast.LENGTH_SHORT).show(); } }}
2.2.4 预览效果
2.3.1 在activity_main.xml文件中添加一个Button
2.3.2 在 MainActivity 中为 Button设置事件监听器
2.3.3 在 StartActivity中接受回传过来的intent
2.3.4 效果预览
本节学习内容就到这里了。学习地址:https://www.bilibili.com/video/av89274094
转载地址:http://hziwi.baihongyu.com/