android intent

<p>android intent负责程序跳转和传递数据。如果把Activity比作积木的话,那么Intent就是胶水。也就是把不同的继母粘连起来。或者说Activity是不同的手机屏幕,而intent就是把不同的手机屏幕粘连起来的胶水。</p><p>另外,学习android intent,还要了解android activity知识,请参阅相关文档。</p><p>下图是&quot;2Intent应用举例&quot;图示。</p><p><img src="/up_pic/201812/191015304108.jpg" title="191015304108.jpg" alt="1.jpg"/></p><p>android intent</p><p>步骤/方法</p><p>Intent用法</p><p>1.1启动一个特定的Activity</p><pre class="brush:java;toolbar:false">Intentintent=newIntent(CurrentActivity.this,OtherActivity.class); startActivity(intent);</pre><p>1.2启动一个未指明的Activity</p><pre class="brush:java;toolbar:false">Intentinter=newIntent(Intent.ACTION_DIAL,Uri.parse(&quot;tel:115-1345&quot;)); startActivity(intent);</pre><p>1.3处理一个Activity的返回值</p><pre class="brush:java;toolbar:false">PublicvoidonCreate(BundlesaveInstanceState){ super.onCreate(savedInstanceState); listener1=newOnClickListener(){ publicvoidonClick(Viewv){ Intentintent1=newIntent(ActivityMain.this,Activity1.class); Intent1.putExtra(&quot;activityMain&quot;,&quot;数据来自activityMain&quot;); startActivityForResult(intent1,REQUEST_CODE); } }; Listener2=newOnClickListener(){ publicvoidonClick(Viewv){ setTitle(&quot;这是在ActivityMain&quot;); Intentintent2=newIntent(ActivityMain.this,Activity2.class); startActivity(intent2); } }; setContentView(R.layout.main); button1=(Button)findViewById(R.id.button1); button1.setOnClickListener(listener1); button2=(Button)findViewById(R.id.button2); button2.setOnClickListener(listener2); setTitle(&quot;ActivityMain&quot;); } @Override ProtectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){ If(requestCode==REQUEST_CODE){ If(resultCode==RESULT_CANCELED) setTitle(&quot;取消&quot;); elseif(resultCode==RESULT_OK){ Stringtemp=null; Bundleextras=data.getExtras(); If(extras!=null){ Temp=extras.getString(&quot;store&quot;); } setTitle(temp); } } }</pre><p>Intent应用举例</p><p>Activity01.java</p><pre class="brush:java;toolbar:false">publicclassActivity01extendsActivity { publicvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); /*设置显示main.xml布局*/ setContentView(R.layout.main); /*findViewById(R.id.button1)取得布局main.xml中的button1*/ Buttonbutton=(Button)findViewById(R.id.button1); /*监听button的事件信息*/ button.setOnClickListener(newButton.OnClickListener(){ publicvoidonClick(Viewv) { /*新建一个Intent对象*/ Intentintent=newIntent(); /*指定intent要启动的类*/ intent.setClass(Activity01.this,Activity02.class); /*启动一个新的Activity*/ startActivity(intent); /*关闭当前的Activity*/ Activity01.this.finish(); } }); } }</pre><p>Activity02.java</p><pre class="brush:java;toolbar:false">publicclassActivity02extendsActivity { publicvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); /*设置显示main2.xml布局*/ setContentView(R.layout.main2); /*findViewById(R.id.button2)取得布局main.xml中的button2*/ Buttonbutton=(Button)findViewById(R.id.button2); /*监听button的事件信息*/ button.setOnClickListener(newButton.OnClickListener(){ publicvoidonClick(Viewv) { /*新建一个Intent对象*/ Intentintent=newIntent(); /*指定intent要启动的类*/ intent.setClass(Activity02.this,Activity01.class); /*启动一个新的Activity*/ startActivity(intent); /*关闭当前的Activity*/ Activity02.this.finish(); } }); } }</pre><p>Android系统自带的Action介绍</p><p>3.1ACTION_MAIN</p><p>Android.intent.action.MAIN,在每个AndroidManifest.xml问洞中都能看到,标记当前的Activity作为一个程序的入口。</p><p>3.2ACTION_VIEW</p><p>将数据显示给用户</p><p>3.3ACTION_DIAL</p><p>用于描述给用户打电话的动作</p><p>3.4ACTION_PICK</p><p>从特定的一组数据中进行选择数据操作</p><p>3.5ACTION_DEIT</p><p>编辑特定的数据</p><p>3.6ACTION_DELETE</p><p>删除特定的数据</p><p>与动作Action相关联的数据Data介绍</p><p>VIEW_ACTION content://contacts/1显示标示符为1的联系人的详细信息</p><p>EDIT_ACTION content://contacts/1编辑标示符为1的联系人的详细信息</p><p>VIEW_ACTION content://contacts/显示所有联系人列表</p><p>PICK_ACTION content://contacts/显示所有联系人的列表,并且允许用户在列表中选择一个联系人,然后把这个联系人返回给父Activity</p><p>Intent中其他属性介绍</p><p>类别category:它为执行动作的附加信息</p><p>数据类型type:显式指定Intent的目标组件的类名称。</p><p>组件component:指定Intent的目标组件的类名称</p><p>附加信息extras:是其他所有附加信息的集合</p><p>6</p><p>Android解析Intent实现</p><p>6.1直接Intent:指定了component属性的Intent或者setClass</p><p>6.2间接Intent:没有指定comonent属性的Intent。</p><p>6.3如果Intent指明了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不匹配</p><p>6.4如果Intent没有提供type,系统将从data中得到数据类型</p><p>6.5如果Intent中的数据不是具体内容而是URI形式的话,则将根据Intent中数据的scheme进行匹配</p><p>6.6如果Intent指定了一个或多个category,这些类别必须全部出现在组件的类别列表中。</p>
RangeTime:0.008222s
RangeMem:211.56 KB
返回顶部 留言