初识intent
2015-09-11 17:02
447 查看
what
intent是一个对象,这个对象包含了一个数据结构,这个数据结构是对一个动作或者意图的抽象描述。有点拗口哈,其实,intent就是一个对象,通过实例化这个对象,我们可以自己定制一个意图,一个意图也就是一个要执行的动作。这个意图可以是启动一个新的activity或者让当前的activity执行一个新的动作,也可以是把一条消息broadcast广播给对该消息感兴趣的多有广播接收者,还可以是初始化并开启一项新的service或者给正在运行的服务发送一些指令。
Why
为什么需要intent,intent的存在可以帮助我们完成以下的事情:
1.从当前Activity打开另一个Activity或者Service ;
2.在Activity或者Services之间传递数据;
3.实现app之间的代理功能。
how
如何使用intent呢?接下来,我们分别举例说明如何使用intent。
1.从当前Activity打开另一个Activity或者Service ;
简单定义两个Activity,实现当前从Activity打开新的Activity
两个activity的代码实现:
运行效果:
2.在Activity或者Services之间传递数据;
两个activity的代码实现:
运行效果:
3.实现app之间的代理功能。
在当前activity中,调用系统的浏览器,并打开百度网页。
代码实现:
运行效果展示:
intent是一个对象,这个对象包含了一个数据结构,这个数据结构是对一个动作或者意图的抽象描述。有点拗口哈,其实,intent就是一个对象,通过实例化这个对象,我们可以自己定制一个意图,一个意图也就是一个要执行的动作。这个意图可以是启动一个新的activity或者让当前的activity执行一个新的动作,也可以是把一条消息broadcast广播给对该消息感兴趣的多有广播接收者,还可以是初始化并开启一项新的service或者给正在运行的服务发送一些指令。
Why
为什么需要intent,intent的存在可以帮助我们完成以下的事情:
1.从当前Activity打开另一个Activity或者Service ;
2.在Activity或者Services之间传递数据;
3.实现app之间的代理功能。
how
如何使用intent呢?接下来,我们分别举例说明如何使用intent。
1.从当前Activity打开另一个Activity或者Service ;
简单定义两个Activity,实现当前从Activity打开新的Activity
两个activity的代码实现:
public class ActivityA extends Activity implements OnClickListener { /** Called when the activity is first created. */ private TextView textView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button) findViewById(R.id.ButtonToActivityB); button.setOnClickListener(this); } @Override public void onClick(View src) { Intent i = new Intent(this, ActivityB.class); startActivity(i); } } public class ActivityB extends Activity implements OnClickListener{ private TextView textView; @Override public void onClick(View src) { Intent i = new Intent(this, ActivityA.class); startActivity(i); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activityb); Button button = (Button) findViewById(R.id.ButtonToActivityA); button.setOnClickListener(this); } }
运行效果:
2.在Activity或者Services之间传递数据;
两个activity的代码实现:
public class ActivityA extends Activity implements OnClickListener { /** Called when the activity is first created. */ private TextView textView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Bundle bd = getIntent().getExtras(); if(bd!=null){ String text = bd.getString("data"); textView = (TextView) findViewById(R.id.textViewA); textView.setText(text); } Button button = (Button) findViewById(R.id.ButtonToActivityB); button.setOnClickListener(this); } @Override public void onClick(View src) { Intent i = new Intent(this, ActivityB.class); Bundle bd = new Bundle(); bd.putString("data", "data from activityA"); i.putExtras(bd); startActivity(i); } } public class ActivityB extends Activity implements OnClickListener{ private TextView textView; @Override public void onClick(View src) { Intent i = new Intent(this, ActivityA.class); Bundle bd = new Bundle(); bd.putString("data", "data from activityB"); i.putExtras(bd); startActivity(i); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activityb); Bundle bd = getIntent().getExtras(); if(bd!=null){ String text = bd.getString("data"); textView = (TextView) findViewById(R.id.textViewB); textView.setText(text); } Button button = (Button) findViewById(R.id.ButtonToActivityA); button.setOnClickListener(this); } }
运行效果:
3.实现app之间的代理功能。
在当前activity中,调用系统的浏览器,并打开百度网页。
代码实现:
public class ActivityA extends Activity implements OnClickListener { /** Called when the activity is first created. */ private TextView textView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Bundle bd = getIntent().getExtras(); if(bd!=null){ String text = bd.getString("data"); textView = (TextView) findViewById(R.id.textViewA); textView.setText(text); } Button button = (Button) findViewById(R.id.ButtonToActivityB); button.setOnClickListener(this); Button buttonBrowser = (Button)findViewById(R.id.ButtonToBrowser); buttonBrowser.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.ButtonToActivityB: Intent i = new Intent(this, ActivityB.class); Bundle bd = new Bundle(); bd.putString("data", "data from activityA"); i.putExtras(bd); startActivity(i); break; case R.id.ButtonToBrowser: Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com")); intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity"); startActivity(intent); break; default: break; } } }
运行效果展示:
相关文章推荐
- javascript html DOM 改变html
- html5 audio实现歌词同步
- C# 轻松获取路径中文件名、目录、扩展名等
- iOS开发脚踏实地学习day06--tableView,汽车品牌
- 第一天 快捷导航
- 【Developer Log】web的版本管理
- php跳转页面代码
- 瀑布流的实现
- 【Jade】
- 如何挂载虚拟机的NFS
- 笔试题:求两个乱序数组的共公数组
- SpringMVC深度探险(三) —— DispatcherServlet与初始化主线
- 不小心电脑出现了数学中的极限
- Mysql事务处理
- JS实现动画原理一(闭包方式)
- selenium回放按钮不可用。
- mysql参数配置调优详解配置(2)
- CentOS6.5 安装GNS3
- django - session初步
- 深入消息机制(三) 结合MessageQueue 的JNI 层