Android开发之Activity总结(一)
来源:互联网 发布:php 编译 with zlib 编辑:程序博客网 时间:2024/05/17 01:10
Activity(活动)是Android四大组件之一;它跟用户直接面对面交互。首先重要的一点是你的每一个活动都要在清单文件中注册。
Intent是Android程序中各个组件之间进行交互的一种重要方式;它不仅可以指明当前组件想要执行的动作,还可以在不同的组件之间传递数据。分为显示Intent和隐式Intent。
显示Intent代码如下:
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);startActivity(intent);
隐式Intent需要指定一系列更加抽象的action和category。
在清单文件中代码:
<activity android:name=".SecondActivity" android:launchMode="singleInstance"> <intent-filter> <action android:name="com.gyq.activitytest.ACTION_START" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="com.gyq.activitytest.MY_CATEGORY" /> </intent-filter> </activity>
FirstActivity中代码如下:
@Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_first_button1: Intent intent = new Intent("com.gyq.activitytest.ACTION_START"); intent.addCategory("com.gyq.activitytest.MY_CATEGORY"); startActivity(intent); break; } }
隐式Intent不仅可以启动自己程序内的活动,还可以启动其他程序的活动,这使得Android多个应用程序之间的共享成为了可能;代码如下:
1,直接跳转到拨号界面,只要按拨打键就可以了。
Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:555")); startActivity(intent);
2,直接跳转到百度网页
Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent);
向下一个活动传递数据:
1,FirstActivity.java中按钮点击事件中的代码,跳转到第二个界面:
String data = "亲爱的:你好么?";Intent intent = new Intent(FirstActivity.this,SecondActivity.class);//通过intent的将本界面的数据传递到第二个界面。intent.putExtra("data",data);startActivity(intent);
2,SecondActivity.java接收数据;
Intent intent = getIntent();String content = intent.getStringExtra("data");//content就是上个界面中data的内容。Log.d(TAG, "onCreate: "+content);
返回数据给上一个活动:startAcitivityForResult()方法
1,活动一代码:
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);startActivity(intent);@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case 1: if (resultCode == RESULT_OK) { String resultData = data.getStringExtra("result"); Log.d(TAG, "onActivityResult: "+resultData); } } }
2,活动二代码:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Button btn2 = (Button)findViewById(R.id.btn_second_button2); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //传递数据给上一个activity。 Intent intent = new Intent(); intent.putExtra("result","亲爱的:我很好。"); setResult(RESULT_OK,intent); finish(); } }); } //按返回键可以销毁当前界面,然后将数据回传到第一个界面。 @Override public void onBackPressed() { //传递数据给上一个activity。 Intent intent = new Intent(); intent.putExtra("result","亲爱的:我很好。"); setResult(RESULT_OK,intent); finish(); }
0 0
- Android开发之Activity总结(一)
- Android开发Activity之总结归纳篇一
- Android开发艺术探索--读后总结之Activity(一)
- Android之Activity生命周期总结(一)
- Android开发之旅一退出activity
- Android开发之Activity详解一
- Android开发之旅一初识Activity
- android开发小知识点之Activity总结
- Android开发之Activity总结(二)
- Android开发之Activity总结(三)
- Android之Activity系列总结(一)--Activity概览
- Android之Activity系列总结(一)--Activity概览
- Android开发-Activity(一)
- Android 面试题总结之Android 基础Activity(一)
- Android之activity总结
- Android之activity总结
- Android之activity总结
- Android之activity总结
- linux 源码包安装gcc
- 网络性能测试工具iperf详细使用图文教程
- 常用前端学习网站
- 【项目实战】Java POI之Excel导出经典案例三
- eclipse设置代码自动提示
- Android开发之Activity总结(一)
- er
- linux运维常见命令
- 【已解决】C#获取CPU温度支持Win10(OpenHardwareMonitor)
- axure rp
- 架构设计从这5点考虑,能帮后期运维很大忙!
- Retrofit2+okhttp3 使用教程
- 多项式的加法乘法实现
- erer