赞
踩
还是,笔记仅为供自己学习记录,如果有幸对看官产生帮助,我会很荣幸
Intent是什么?它是连接应用程序的三个核心组件--Activity、Service和BroadcastReceiver的桥梁,完成组件之间的调用,在组件之间传递信息。
当不同组件之间要交流时,需要用Intent来对其中涉及到的行动,动作及涉及到的数据进行描述、传递。
Intent对象,由组件名称,以及Action、Data、Category、Extra和Flag几部分组成。
Intent的分类:Intent有直接意图和间接意图两种方式。
(1)直接意图:指定了要调用的组件,一般用在应用程序的内部,或者明确知道组件的名称。如
- Intent i = new Intent(this,ActivitySec.class);
- //表明了当前组件(this),到类ActivitySec的直接意图
(2)间接意图:没有指定具体组件,这些Intent包含足够的信息,系统根据这些信息,在所有可用的组件中,确定满足此Intent的组件。例如是调用照相机,还是打开浏览器等等
- Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.baidu.com"));
- startActivity(intent);
例如上述例子,则是跳转到网址百度的,那么系统将会自动检测,判断出打开浏览器,从而进入百度页面
此外,还有其他的模糊意图
浏览网页:
intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://developer.android.com"));
打电话:
intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:(+86)10086"));
拨号:
intent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:(+86)10086"));
发短信:
- intent = new Intent(Intent.ACTION_VIEW);
- intent.putExtre("sms_body","The SMS text");
- intent.setType("vnd.android-dir/mms-sms");
启动照相机
intent = new Intent("android.media.action.IMAGE_CAPTURE");
不过,在使用过程中,都要进行注册,一定的权限,下面是常用的:
- 上网权限
- <uses-permission android:name="android.permission.INTRNET">
-
- 使用照相机的权限
- <uses-permission android:name="android.permission.CAMERA">
-
- 发短信的权限
- <uses-permission android:name="android.permission.SEND_SMS">
-
- 打电话的权限
- <uses-permission android:name="android.permission.CALL_PHONE">
-
- 写短信的权限
- <uses-permission android:name="android.permission.WRITE_SMS">
接下来,来尝试一下几种不同的跳转方式
界面文档我就不贴了,直接发图:
MainActivity.java
- public class MainActivity extends Activity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
-
- public void onClick(View view) {
- // TODO Auto-generated method stub
- switch(view.getId()){
- //button1是跳转到新的界面
- case R.id.button1:
- Intent intent_two = new Intent(MainActivity.this,TwoActivity.class);
- startActivity(intent_two);
- break;
- //button2是带信息跳转到新的界面
- case R.id.button2:
- Intent intent_three = new Intent(MainActivity.this,ThirdActivity.class);
- intent_three.putExtra("text1", "这是第二个Activity");
- startActivity(intent_three);
- break;
- //button3是带有返回值的跳转,当跳回主界面的时候,会toast出所返回的信息
- case R.id.button3:
- Intent intent_four = new Intent(MainActivity.this,FourActivity.class);
- startActivityForResult(intent_four, 1);
- break;
-
- /*
- *通过间接意图来实现跳转到另一应用的指定界面(浏览器界面)
- */
-
- case R.id.button4:
- Intent intent_five = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.baidu.com"));
- //当识别出http://时,会默认打开浏览器
- startActivity(intent_five);
- break;
- }
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.activity_main, menu);
- return true;
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- // TODO Auto-generated method stub
- super.onActivityResult(requestCode, resultCode, data);
- if(requestCode==1&&resultCode==2){
- String backData=data.getStringExtra("name");
- Toast.makeText(MainActivity.this,backData,0).show();
- }
- }
- }

TwoActivity.java,对应第一种跳转
- public class TwoActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.second_activity);
- }
-
- }
ThirdActivity,对应第二种跳转,带信息跳转到新的页面
- public class ThirdActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.third_activity);
- TextView tv=(TextView)findViewById(R.id.third_textView1);
- String str=this.getIntent().getExtras().getString("text1");
- }
-
- }
ForthActivity.java,对应有返回值的跳转,在这个界面来存入信息,当跳回主界面时会toast出刚刚输入的信息。
- public class FourActivity extends Activity implements OnClickListener{
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.forth_activity);
- }
-
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Intent intent=new Intent();
- EditText edi_name=(EditText) findViewById(R.id.forth_editText1);
- EditText edi_pwd=(EditText) findViewById(R.id.forth_editText2);
- String s="用户名是:"+edi_name.getText().toString()+"密码是:"+edi_pwd.getText().toString();
- intent.putExtra("name", s);
- setResult(2,intent);
- finish();
- }
- }

赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。