Intent使用详解
来源:互联网 发布:胡公子淘宝店 编辑:程序博客网 时间:2024/06/06 00:35
Intent使用详解
标签(空格分隔): intent menu
Intent的使用方式
- 显示启动
- 隐式启动
显示Intent
Intent intent = new Intent(FirstActivity.this,SecondActivity.class); startActivity(intent);
隐式Intent
1.跳转到Activity
在清单文件中加入action,category
<activity android:name=".SecondActivity"> <intent-filter> <action android:name="com.example.seele.activitytest.ACTION_START" /> <category android:name="android.intent.category.DEFAULT"/> <category android:name="com.example.seele.activitytest.MY_CATEGORY" /> </intent-filter></activity>
android.intent.category.DEFAULT 是默认的category
Intent intent = new Intent("com.example.seele.activitytest.ACTION_START"); intent.addCategory("com.example.seele.activitytest.MY_CATEGORY"); startActivity(intent);
2.跳转到网页
Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent);
如果在清单文件中Activity加入action,catrgory,程序会让我们选择可以打开的界面(浏览器,ThirdActivity)
<activity android:name=".ThirdActivity"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="http"/> </intent-filter> </activity>
3.跳转到拨号
Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:10086")); startActivity(intent);
4.Intent传递数据
//传递的activityString data = "Hello SecondActivity"; Intent intent = new Intent(FirstActivity.this,SecondActivity.class); intent.putExtra("extra_data",data); startActivity(intent);
//接收的activity Intent intent = getIntent(); String data = getIntent().getStringExtra("extra_data");
5.返回给上一个活动数据
startActivityForResult传递的两个参数是 intent 和 请求码
onActivityResult传递的三个参数是requestCode(请求码) resultCode(处理结果) data(返回的数据)
FirstActivitybtn7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(FirstActivity.this,SecondActivity.class); startActivityForResult(intent,1); } }); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode){ case 1: if(resultCode==RESULT_OK){ String returnedData = data.getStringExtra("data_return"); Toast.makeText(this,returnedData,Toast.LENGTH_SHORT).show(); } break; } super.onActivityResult(requestCode, resultCode, data); }
SecondActivity@Override public void onBackPressed() { Intent intent = new Intent(); intent.putExtra("data_return","Hello FirstActivity"); setResult(RESULT_OK,intent); finish(); }
在res目录新建一个menu文件夹,menu文件夹中新建main
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/add_item" android:title="Add"/> <item android:id="@+id/remove_item" android:title="Remove"/></menu>
在Activity中重写onCreateOptionsMenu和onOptionsItemSelected
public class FirstActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.first_layout); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main,menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.add_item: Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show(); break; case R.id.remove_item: Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show(); break; } return true; }}
源码下载
阅读全文
1 0
- Intent使用详解
- Intent使用详解
- Intent详解(四):使用隐式Intent
- Intent详解
- intent详解
- intent详解
- Intent详解
- Intent 详解
- intent详解
- Intent 详解
- Intent详解
- intent详解
- Intent 详解
- intent 详解
- intent 详解
- Intent 详解
- Intent详解
- Intent详解
- 解决Android反编译XML文件乱码问题
- Android技术痛点——各种键盘挡住输入框终极解决办法
- HDU 2586 How far away ?(lca)
- 数据结构OJ作业——最短路、拓扑排序
- 用户用浏览器访问一个网站的时候背后的过程与步骤是怎样的?
- Intent使用详解
- Eclipse构建项目时"An internal error occurred during: "Building workspace". Java heap space"
- 机器学习知识点(三十)LDA话题模型Java实现
- 将项目发布到 maven 中央仓库踩过的坑
- java中拼音和中文互相转换
- 【mysql】根据不同条件查询表中同一字段
- 入门
- Gson 的坑
- CentOS搭建分布式集群环境