Android(安卓)- Intent基础
16lz
2022-01-28
我是iOS 转Android 的,做一些自己的学习记录.
Intent
Intent 有很多的作用,由于初次尝试Android,暂时知道Intent可以用于界面之前的切换就ok了。
显示Intent
//初始化Intent, 表示从FirstActivity 到 SecondActivityIntent intent = new Intent(FirstActivity.this,SecondActivity.class); //执行 intent实例startActivity(intent); //若要返回上一个类,可点击右上角back。或者手动代码 finish();销毁当前activity
隐式Intent
//在AndroidManifest.xml中添加
//当action 和 category同时匹配成功才能启动下一个activity,这里能调用时因为有android.intent.category.DEFAULT默认categoryIntent intent = new Intent("com.example.activitytest.ACTION_START");//这样调用category需要在AndroidManifest.xml中添加 //Intent.addCategory("com.example.activitytest.My_CATEGORY");startActivity(intent);
调用系统浏览器
//intent的action是Intent.ACTION_VIEWIntent intent = new Intent(Intent.ACTION_VIEW);intent.setData(Uri.parse("http://www.baidu.com"));startActivity(intent);
新建一个ThirdActivity
//intent 响应data 标签中满足http协议的activity,这样执行上面调用浏览器intent 就会出现选择列表
打电话
Intent intent = new Intent(Intent.ACTION_DIAL);intent.setData(Uri.parse("tel:10086"));startActivity(intent);
向下一个activity传递数据
//FirstActivity String data = "Hello SecondActivity";Intent intent = new Intent(FirstActivity.this,SecondActivity.class);intent.putExtra("extra_data",data);//extra_data 是键,data是要传递的值,这里data是字符串startActivity(intent);
//SecondActivity中获取值Intent intent = getIntent();String data = intent.getStringExtra("extra_data");//获取传过来的值Log.v("SecondActivity",data);//打印
返回数据给上一个活动
//FirstActivityIntent intent = new Intent(FirstActivity.this, SecondActivity.class);startActivityForResult(intent,1);
//SecondActivityIntent intent = new Intent();intent.putExtra("data_return","Hello First");//putExtra(键,值)setResult(RESULT_OK,intent);finish();
//FirstActivity 重写onActivityResult 来接收数据@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case 1: if (resultCode == RESULT_OK) { String returnData = data.getStringExtra("data_return"); Log.v("FirstActivity", returnData); } } }
//SecondActivity 通过back键回到FirstActivity @Override public void onBackPressed() { super.onBackPressed(); Intent intent = new Intent(); intent.putExtra("data_return","Hello First"); setResult(RESULT_OK,intent); finish(); }//通过左上actionBar 返回按钮 @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { } return super.onOptionsItemSelected(item); }
更多相关文章
- Android数据库 之 SQLite数据库
- android Tether 分析
- android Toolbar的使用结合状态栏与返回键
- Android(安卓)recyclerview更新item位置移动
- Android音频系统之四AudioPolicy
- Android(安卓)使用WebView
- App 启动页出现短暂闪屏的解决方案
- 在SQLite数据库中获取新插入数据自增长的ID值(传智播客笔记)
- mybatisplus的坑 insert标签insert into select无参数问题的解决