Android学习整理-Intent整理

来源:互联网 发布:剑网三正太数据 编辑:程序博客网 时间:2024/06/10 18:31

Intent

Intent打电话:

intent.setAction(intent.ACTION_CALL);//类型intent.setData(Uri.parse("tel:679944"));//679944是电话号码startActivity(intent);

Intent发短信:

intent.setAction(intent.ACTION_SENDTO);//类型intent.setData(Uri.parse("smsto:679944"));//679944是电话号码intent.putExtra("sms_body", string);//string是短信内容,string类型startActivity(intent);

Intent调用其他Activity:

//记得在AndroidManifest.xml中声明新的Activity类

1.普通调用

Intent intent=new Intent();intent.setClass(MainActivity.this, SecondActivity.class);//SencondActivity是继承Activity类,这样就可以从MainActivity转到SecondAtivity...记得要用SecondActivity.class,我也不知道为什么startActivity(intent);

2.带传值调用

//MainAtivity中的代码Intent intent=new Intent();intent.setClass(MainActivity.this, SecondActivity.class);intent.putExtra("abc", "哇!!原来喺咁样传值嘎!!");//这句是重点啊!!!要传什么值就写多少句这个startActivity(intent);//SecondAtivity中的代码Intent intent2 = getIntent();//getIntent()<->Return the intent that started this activity. Bundle bundle = intent2.getExtras();//在MainAtivity那里是put,这里就是get,因为返回类型只有BundleString string = bundle.getString("abc");//abc是key,输入可取出对应数值,key有点像变量名Toast.makeText(SecondActivity.this, string, 0).show();//这个相当于java的弹出框

3.得到调用的Activity返回的值

//MainAtivity中的代码Intent intent=new Intent();intent.setClass(MainActivity.this, SecondActivity.class);intent.putExtra("abc", "哇!!原来喺咁样传值嘎!!");startActivityForResult(intent, REQUEST_FIRST);//这句是重点啊!!!这个方法说明会让调用的Activity结束后会调用onActivityResult(),这个方法返回对应的requestCode,resultCode,Intent,可以利用requestcode和resultcode确定执行对应的动作//REQUEST_FIRST是一个int值,可以在类中设为静态常来,方便阅读
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == REQUEST_FIRST && resultCode == SecondActivity.RESULT_FIRST) {String string = ((Bundle) data.getExtras()).getString("back");Toast.makeText(MainActivity.this, string, Toast.LENGTH_SHORT).show();}}//这个需要重写//这个方法的requestCode,resultCode,Intent参数,可以利用requestcode和resultcode确定执行对应的动作,因为通常一个activity中包含多个按钮
//SecondActivity中的代码/*Ps:要注意重写返回键代码,因为在secondactivity结束后,mainactivity会调用onActivityResult(),其中有行代码是根据个key "back"来得到secondactivity的数据,返回键没有设置的话,会直接down掉,所以要重写,这个要注意 或者可以对requestcode进行判断也可以 推荐后者*/ Intent intent = new Intent();intent.putExtra("back", "睇来真喺可以返来窝");setResult(RESULT_FIRST, intent);//这个是重点!!RESULT_FIRST是一个int值,可以在类中设为静态常来,方便阅读finish();