intent理解
来源:互联网 发布:php添加自定义菜单 编辑:程序博客网 时间:2024/06/04 20:13
什么是intent
andriod中有三大组件,为了方便不用组件之间的联系,应用程序就采用以一种统一的方式启动了组件及传递信息,就是使用intent。
intent有分为显示intent和隐式intent,intent可以实现activity之间的跳转,之间的传递数据等之类。intent一般用来启动活动,启动服务,以
及发送广播等场景。目前所介绍的是启动活动
使用显示intent
我们用intent从一个activity中启动另一个,代码示例:
setContentView(R.layout.activity_main);//给当前活动引入一个布局 //在活动中使用Toast Button button1=(Button)findViewById(R.id.button_1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this,"您已经完成这项任务", Toast.LENGTH_SHORT). show(); Intent intent=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent); } });intent中含有多个构造函数重载,其中intent中要接收两个参数,第一个参数是context要求启动的上下文(一般情况下当前活动),而第二个
参数class是我们要启动的目标活动,在activity类中提供了一个startActivity方法来启动activity,这个方法专门启动活动,并且接收一个来自conten
的参数。
隐式intent的用法
通过在<activity>标签下配置<intent-filter>的内容,可以指定当前活动能够响应的action和category,打开AndroidManifest.xml,添加代码
<activity android:name=".SecondActivity" ><intent-filter><action android:name="com.example.activitytest.ACTION_START" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity>然后再Mainactivity中,添加
button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent("com.example.activitytest.ACTION_START");startActivity(intent);}});同样在构造函数中讲action的name属性传进去,表示要启动这个action,每个intent只能制定一个action
更多的隐式用法
button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(Intent.ACTION_VIEW);intent.setData(Uri.parse("http://www.baidu.com"));startActivity(intent);}});这里我们首先指定了 Intent 的 action 是 Intent.ACTION_VIEW,这是一个 Android 系统内置的动作,其常量值为 android.intent.action.VIEW。
然后通过 Uri.parse()方法,将一个网址字符串解析成一个 Uri 对象, 再调用 Intent的 setData()方法将这个 Uri 对象传递进去。
我们也可以(ˇˍˇ) 向下一个activity传递数据,第一个activity的代码为
setContentView(R.layout.activity_main); String mString; mEditText = (EditText)findViewById(R.id.editText); Button button1=(Button) findViewById(R.id.button_1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //String user="传递字符串到第二个活动"; String mString=mEditText.getText().toString(); Intent intent=new Intent(MainActivity.this,Main2Activity.class); intent.putExtra("mEditText",mString); startActivity(intent); } });
第二个activity的代码为
setContentView(R.layout.activity_main2); Intent intent=getIntent(); String mString=intent.getStringExtra("mEditText"); TextView textView=(TextView) findViewById(R.id.textView4); textView.setText(mString);
理解:我们在第一个Mainactivity中设置一个输入框,在里面输入字符串,并点击Button实现跳转。在第一个Mainactivity中用intent.putExtra保存
输入框中输入的字符串,其中里面有两个参数,第一个参数是取得这个putExtra的按键,第二个参数是输入框中输入的内容,启动startActivity方法,
跳转到第二个activity。Intent intent=getIntent(); 获得传过来的intent,并且用intent.getStringExtra方法获得按钮,再将其输入到textview中。
- 理解Intent
- Intent理解
- Intent理解
- Intent理解
- intent理解
- 理解Intent和Intent Filter
- 理解Intent和Intent Filter
- android intent的理解
- 深入理解 intent (1)
- What:理解Intent filter
- Intent Flags理解
- Intent 全面理解
- 【Android】Intent理解
- Intent深入理解
- 关于Intent的理解
- Intent 的理解
- Android之Intent用途理解
- 深入理解Intent和IntentFilter
- Jquery自制表单实时验证
- iOS 彩色图片置灰,灰度图片
- 逻辑测试
- cocosjs--h5游戏能正常渲染一点屏幕就黑屏的解决方案
- 问题:css中filter
- intent理解
- 图像检索库yael的安装
- JakeWharton的timber自动生成Tag原理
- nginx透传自定义带下划线请求头
- 记录一次数据库Job不定时执行的问题
- 奇偶规则VS非零环绕规则
- Android学习笔记——TextInputLayout
- coreboot基础——基础流程
- java多线程入门(一)