Starting Activities and Getting Results

StartingActivitiesandGettingResults

ThestartActivity(Intent)methodisusedtostartanewactivity,(注意是new)
whichwillbeplacedatthetopoftheactivitystack.Ittakesasingleargument,anIntent,
whichdescribestheactivitytobeexecuted.

Sometimesyouwanttogetaresultbackfromanactivitywhenitends
end这个没说清楚吧,在2.1中反正是按back键回来才调用了onActivityResult,
如果通过startActivity或startActivityForResult回来是不回调用
).
Forexample,youmaystartanactivitythatletstheuserpickapersoninalistofcontacts;
whenitends,itreturnsthepersonthatwasselected.Todothis,
youcallthestartActivityForResult(Intent,int)versionwithasecondintegerparameteridentifyingthecall.
TheresultwillcomebackthroughyouronActivityResult(int,int,Intent)method.

Whenanactivityexits,itcancallsetResult(int)toreturndatabacktoitsparent.
Itmustalwayssupplyaresultcode,whichcanbethestandardresultsRESULT_CANCELED,RESULT_OK,
oranycustomvaluesstartingatRESULT_FIRST_USER.Inaddition,itcanoptionallyreturnbackanIntentcontaininganyadditionaldataitwants.Allofthisinformationappearsbackontheparent'sActivity.onActivityResult(),alongwiththeintegeridentifieritoriginallysupplied.

Ifachildactivityfailsforanyreason(suchascrashing),
theparentactivitywillreceivearesultwiththecodeRESULT_CANCELED.

publicclassMyActivityextendsActivity{
...

staticfinalintPICK_CONTACT_REQUEST=0;

protectedbooleanonKeyDown(intkeyCode,KeyEventevent){
if(keyCode==KeyEvent.KEYCODE_DPAD_CENTER){
//Whentheusercenterpresses,letthempickacontact.
startActivityForResult(
newIntent(Intent.ACTION_PICK,
newUri("content://contacts")),
PICK_CONTACT_REQUEST);
returntrue;
}
returnfalse;
}

protectedvoidonActivityResult(intrequestCode,intresultCode,
Intentdata){
if(requestCode==PICK_CONTACT_REQUEST){
if(resultCode==RESULT_OK){
//Acontactwaspicked.Herewewilljustdisplayit
//totheuser.
startActivity(newIntent(Intent.ACTION_VIEW,data));
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值