[android] 在不同的activity之间传递数据
2023-02-18 15:47:17 时间
新建一个activity,继承Activity
清单文件中进行配置,添加<activity/>节点
设置名称 android:name=”.类名” 点 代表的是当前包名,也可以不写
新建一个布局文件,线性布局,竖直排列
添加<TextView/>控件,设置控件内容水平居中,android:gravity=”center_horizontal”
添加一个<Button/>控件,我想让他占据剩余空间的中央,添加一个<RelativeLayout/>的布局,
给<Button/>设置在父控件的中央center_inParent
第一个界面里面:
获取到EditText对象的值
获取Intent对象,调用new出来,通过简便方式直接指定,参数:上下文,类字节码
调用Intent对象的putExtra(key,val)方法,传递数据,参数:键值对
调用startActivity(intent)方法,开启
第二个界面里面:
获取Intent对象,调用getIntent()方法,获取到传递过来的Intent对象
调用Intent对象的getStringExtra(name)方法,获取传递的String,参数:键
获取Random对象,new出来随机数对象
调用Random对象的nextInt(n),获取随机值,参数:int类型的最大值,0开始要减一
显示进度条,布局文件增加<ProgressBar/>,设置最大值android:max=”100”,代码中获取到这个ProgressBar对象,调用对象的setProgress(p)方法,参数:上面的随机值
也可以传递对象,但是这个对象必须序列化
第一个activity:
package com.tsh.testrp; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.EditText; public class MainActivity extends Activity { private EditText et_name; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_name=(EditText) findViewById(R.id.et_name); } //测试 public void click(View v){ String name=et_name.getText().toString().trim(); Intent intent=new Intent(this,ResultActivity.class); intent.putExtra("name", name); startActivity(intent); } }
第二个activity:
package com.tsh.testrp; import java.util.Random; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.ProgressBar; import android.widget.TextView; public class ResultActivity extends Activity { private TextView tv_name; private ProgressBar pb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_result); //获取展示数据 tv_name=(TextView) findViewById(R.id.tv_name); pb=(ProgressBar) findViewById(R.id.pb_result); Intent intent=getIntent(); String name=intent.getStringExtra("name"); Random random=new Random(); int rp=random.nextInt(101); tv_name.setText(name+":您的人品值是"+rp); pb.setProgress(rp); } }
相关文章
- 论文解读(BYOL)《Bootstrap Your Own Latent A New Approach to Self-Supervised Learning》
- iOS小技能:敏感逻辑的保护方案
- iOS小技能:【intercept the HTTP/HTTPS requests 】利用NSURLProtocol 拦截请求
- iOS小技能:UIWebView 被拒的解决方案(用更安全的WKWebView替代UIWebView)
- iOS小技能:打包注意事项(私有API检测)
- iOS抽奖转盘上篇:概率抽奖算法 & 转盘算法 &轮盘边框动画丨(内含完整Demo)
- Android平台GB28181接入模块技术接入说明
- iOS 离线发表博客的 APP MWeb
- Android平台GB28181设备接入模块分辨率发生变化怎么办?
- Android Camera2 Focus Distance
- 小程序化正在成为大势所趋?
- 小程序化正在成为线上教育服务的最佳方式
- 技术干货|如何借助FinClip实现小程序在硬件设备上的运行
- Jitpack发布Android库出现Direct local .aar file dependencies are not supported when building an AAR
- 关于Android12安装apk出现-108异常INSTALL_PARSE_FAILED_MANIFEST_MALFORMED的解决方法
- Android 多module情况下module依赖aar问题处理
- Android7.0以上的分享图片文件错误及解决方法
- Android开发 对接微信分享SDK总结
- Android RecyclerView使用ListAdapter高效刷新数据
- Android自动化测试工具调研