Android°ÙÈÕ³ÌÐò£ºÊ¹ÓÃIntent»Ø´«½á¹û

來源:互聯網
上載者:User

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µÄһлúÖÆ£¬Àí½âÆðÀ´µ¹ÊÇûÓÐʲôÄѶȵġ£


˵ºÃÊǰÙÈÕ³ÌÐò£¬¿´À´²»ÄܰÙÈÕÖÄÚÍê³ÉÁË£¬ÒòΪ»¹ÓкܶàÆäËûÊÂÇé×ö¡£

ÕùÈ¡×ö¿ìµã°É£¬ÒÔºó³öµã¾«Æ·½Ì³Ì£¬°Ñѧµ½µÄ£¬Èøü¶àÈËѧ»áÒ²ÊǺÜÓÐÒâÒåµÄÊÂÇéµÄ¡£


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.