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,因为返回类型只有Bundle
String 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值,可以在类中设为静态常来,方便阅读
@Override
protected 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();