前言
最近忙著跟項目,好久沒有寫文字了。今天1個群里面的童鞋問到1個關于不同界面間傳值的問題,借這個背景,寫1段關于“ startActivity、 startActivityForResult 、廣播的使用”的文字,希望能對照我還新的新手有所幫助
①、 startActivity、 startActivityForResult:
Intent intent;@Override public void onClick(View v) { int tag = v.getId(); switch (tag) { // 通過startActivityForResult case R.id.btnTZBystartActivtyForResult: intent = new Intent(MainActivity.this, ModifyActivity.class); startActivityForResult(intent, 0); break; // 通過Broadcast case R.id.btnTZBystartActivty: intent = new Intent(MainActivity.this, ModifyActivity.class); startActivity(intent); break; default: break; } }
②、 廣播的使用:
首先,要定義1個廣播接收類:
// 定義1個BroadcastReceiver廣播接收類: public class ReceiveBroadCast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent data) { String actionName = data.getAction(); if (myActionName.equals(actionName)) { // 得到廣播中得到的數據,并顯示出來 Bundle extras = data.getExtras(); if (extras != null) { String[] value = extras.getStringArray("data"); tv1.setText(value[0]); tv2.setText(value[1]); tv3.setText(value[2]); tv4.setText(value[3]); } } } }
其次,注冊廣播:
// 注冊廣播 public void registerBoradcastReceiver() { receiveBroadCast = new ReceiveBroadCast(); IntentFilter filter = new IntentFilter(); filter.addAction(myActionName); // 只有持有相同的action的接受者才能接收此廣播 registerReceiver(receiveBroadCast, filter); }
再次,就是發送廣播了:
String[] value2 = new String[] { "111", "222", "333", "444" }; Intent tent2 = new Intent("MyActionTag");// 廣播的標簽,1定要和需要接受的1致。 tent2.putExtra("data", value2); sendBroadcast(tent2);// 發送廣播 this.finish();啥也不說了,上Demo吧:
http://download.csdn.net/detail/xiaojia7283/8099919 歡迎下載。