實(shí)現(xiàn)原理
點(diǎn)擊button通過(guò)intent跳轉(zhuǎn)到短信模塊的activity磁椒,然后點(diǎn)擊短信灌具,然后利用intent傳送數(shù)據(jù)到第一個(gè)activity割捅,然后進(jìn)行發(fā)送短信
知識(shí)點(diǎn)
- 1.startActivityForResult和setResult 的相關(guān)知識(shí)
- 2.發(fā)送短信的相關(guān)知識(shí)
startActivityForResult和setResult 詳解
-
1恩掷、startActivity( )
僅僅是跳轉(zhuǎn)到目標(biāo)頁(yè)面,若是想跳回當(dāng)前頁(yè)面树灶,則必須再使用一次startActivity( )纤怒。
-
2、startActivityForResult( )
可以一次性完成這項(xiàng)任務(wù)天通,當(dāng)程序執(zhí)行到這段代碼的時(shí)候泊窘,假若從T1Activity跳轉(zhuǎn)到下一個(gè)Text2Activity,而當(dāng)這個(gè)Text2Activity調(diào)用了finish()方法以后像寒,程序會(huì)自動(dòng)跳轉(zhuǎn)回T1Activity烘豹,并調(diào)用前一個(gè)T1Activity中的onActivityResult( )方法。
兩個(gè)頁(yè)面之間數(shù)據(jù)傳輸(startActivityForResult)
A頁(yè)面
Intent intent=new Intent(A.this诺祸,B.class);
startActivityForResult(intent,0);
B頁(yè)面
Intent intent=new Intent(B.this携悯,A.class);
intent.putExtra(key,value);
setResult(0,intent);
finish();
這里采用startActivityForResult來(lái)做跳轉(zhuǎn),此處的0為一個(gè)依據(jù)筷笨,可以寫(xiě)其他的值蚌卤,但一定要>=0
這個(gè)依據(jù)我們可以通過(guò)重寫(xiě) onActivityResult來(lái)實(shí)現(xiàn),比如傳輸兩個(gè)數(shù)據(jù)的時(shí)候可以進(jìn)行判斷
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==0){
String s_content = data.getStringExtra("content");
content.setText(s_content);
} else if(requestCode==1){
......
}
}
發(fā)送短信
//[1]獲取發(fā)送短信的號(hào)碼 和 發(fā)送的內(nèi)容
String number = et_number.getText().toString().trim();
String content = et_content.getText().toString().trim();
//[2]獲取到smsmanager的實(shí)例
SmsManager smsManager = SmsManager.getDefault();
ArrayList<String> divideMessages = smsManager.divideMessage(content);
for (String div : divideMessages) {
/**
* destinationAddress 發(fā)送給誰(shuí)
* scAddress 服務(wù)中心號(hào)碼
*
* text 要發(fā)送的內(nèi)容
*/
smsManager.sendTextMessage(number, null, div, null, null);
}