Android°ÙÈÕ³ÌÐò£ºÊ¹ÓÃIntent»Ø´«½á¹û
±¾ÕÂʹÓÃIntent£¬»Ø´«ÐèÒªµÄ½á¹û£»
Á÷³Ì£º
Æô¶¯Ö÷Ò³->°´Ï°´¼üÆô¶¯µÚ¶þ¸öactivity->ÊäÈëÓû§Ãû£¬°´ÏÂOK°´¼ü->»Ø´«Óû§Ãû»ØÖ÷Ò³->Ö÷Ò³¶ÁÈ¡Óû§Ãû²¢ÏÔʾ³öÀ´¡£
1 Æô¶¯Ö÷ҳͼ£º
2 Æô¶¯µÚ¶þ¸öactivity
3 ÊäÈëÓû§Ãû£º
4 »Ø´«µ½Ö÷Ò³£¬¶ÁÈ¡²¢ÏÔʾ£º
н¨ÏîÄ¿£¬È»ºóÊäÈë¶ÔÓ¦µÄ´úÂë¾ÍOKÁË¡£<†·Ÿ"http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+MSDW99KzvefD5rT6wusoYWN0aXZpdHlfbWFpbi54bWwpo7o8L3A+CjxwPjxwcmUgY2xhc3M9"brush:java;">
½¨Á¢Ò»¸öButton£¬È»ºóÖ¸¶¨ÏàӦʱ¼äÊÇonClick
2 Ö÷Ò³µÄÏìӦʱ¼ä´úÂ룺
public class MainActivity extends Activity {/* * An integer value that identifies an activity you are calling. * When an Activity returns a value, you must have a way to identify it * If the request code is set to -1, then calling it using the * startActivityForResult() method is equivalent to calling it using * the startActivity() method. That is, no result will be returned. */int requestCode = 1;public static boolean equ(T t1, T t2){return t1 == t2;} @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view){ startActivityForResult(new Intent("su.bill.intenttest.SecondaryActivity"), requestCode); }}
ÕâÀïºÍÒ»°ãµÄstartActivity²»ÓõľÍÊÇʹÓÃÁËstartActivityForResult£¬Ê¹ÓÃÕâ¸öº¯Êý¾ÍÄܻش«½á¹ûÁË¡£
3 ½øÈëµÚ¶þ¸öactivityµÄ½çÃæ´úÂ룺
¼òµ¥µÄÒ»¸öÊäÈëÎı¾£¬Ò»¸ö°´¼ü
4 µÚ¶þ¸öactivityµÄÂß¼´úÂë
package com.example.intenttest;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.widget.EditText;public class SecondaryActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.secondary_activity);}public void onClick(View v){Intent data = new Intent();EditText txt_username = (EditText) findViewById(R.id.txt_username);data.setData(Uri.parse(txt_username.getText().toString()));setResult(RESULT_OK, data);finish();}}
Ö÷ÒªÊÇonClick´úÂ룬н¨Ò»¸öIntent dataÖºó£¬ÉèÖúÃÕâ¸öIntentµÄÄÚÈÝ£¬È»ºóÀûÓÃsetResult»Ø´«Õâ¸öIntent¸øÖ÷Ò³activity£¬Æäʵ»ù±¾ÔÀí»¹ÊÇÀûÓÃIntentͨÐÅ¡£
5 Ö÷Ò³Âß¼µÄ¶ÁÈ¡²¢ÏÔʾ½á¹ûµÄ´úÂ룺
@Override public void onActivityResult(int reqCode, int resCode, Intent data) { if (equ(reqCode, requestCode) && equ(resCode, RESULT_OK)){ Toast.makeText(this, data.getDataString(), Toast.LENGTH_SHORT).show(); } }´ÓÉÏÒ»¸ö¶ÔÓ¦µÄactivity·µ»ØµÄʱºò¾Í×Ô¶¯µ÷Óô¦ÀíµÄº¯Êý£¬ÆäÖеıíʾ·ûºÅ¾ÍÊÇrequestCodeºÍ·µ»ØµÄ±êʶ·ûreqCode¶ÔÓ¦ÆðÀ´£¬ÒÔ±ãÈ·ÈÏÕâ¸ö·µ»ØµÄIntentÊǶÔÓ¦µÄactivity·µ»ØµÄ¡£
Ö÷Ò³Âß¼µÄÍêÕû´úÂëÈçÏ£º
package com.example.intenttest;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Toast;public class MainActivity extends Activity {/* * An integer value that identifies an activity you are calling. * When an Activity returns a value, you must have a way to identify it * If the request code is set to -1, then calling it using the * startActivityForResult() method is equivalent to calling it using * the startActivity() method. That is, no result will be returned. */int requestCode = 1;public static boolean equ(T t1, T t2){return t1 == t2;} @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view){ startActivityForResult(new Intent("su.bill.intenttest.SecondaryActivity"), requestCode); } @Override public void onActivityResult(int reqCode, int resCode, Intent data) { if (equ(reqCode, requestCode) && equ(resCode, RESULT_OK)){ Toast.makeText(this, data.getDataString(), Toast.LENGTH_SHORT).show(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
ÆäËûû˵µ½µÄ´úÂë¶¼ÊÇн¨ÏîÄ¿µÄʱºò×Ô¶¯Éú³ÉµÄ´úÂëÁË£¬¿ÉÒÔÔÝʱºöÂÔ¡£
¾ÍÊÇÊìϤºÃAndroidµÄһлúÖÆ£¬Àí½âÆðÀ´µ¹ÊÇûÓÐʲôÄѶȵġ£
˵ºÃÊǰÙÈÕ³ÌÐò£¬¿´À´²»ÄܰÙÈÕÖÄÚÍê³ÉÁË£¬ÒòΪ»¹ÓкܶàÆäËûÊÂÇé×ö¡£
ÕùÈ¡×ö¿ìµã°É£¬ÒÔºó³öµã¾«Æ·½Ì³Ì£¬°Ñѧµ½µÄ£¬Èøü¶àÈËѧ»áÒ²ÊǺÜÓÐÒâÒåµÄÊÂÇéµÄ¡£