Android 基础学习 (二) : Intent 类

来源:互联网 发布:潜龙谍影1java 编辑:程序博客网 时间:2024/06/06 04:49

Intent : 用于 Activity 之间的通信。

当用于本应用程序的通信时,使用显示 Intent 。

当用于跨应用程序的通信时,使用隐式 Intent 。


实现一般性的启动一个 Activity 并关闭 : 

Activity1 : 对 Button 设置点击事件跳转到 Activity2 

//一般启动    public void Start1(View view) {        //创建显示 Intent         Intent intent = new Intent(this,SecondActivity.class) ;                //携带数据        String msg = et_msg.getText().toString() ;        intent.putExtra("msg",msg) ;                startActivity(intent);    } 

Activity2 : 接受 Activity1 的数据显示到 EditText

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_second);        et_msg2 = (EditText) findViewById(R.id.et_msg2);        String msg = getIntent().getStringExtra("msg") ;        et_msg2.setText(msg);    }    public void back1(View view) {        //关闭当前页面        finish();    }

实现带回调的启动一个 Activity 并关闭 : 

Activity1 : 

public void start2(View view) {        Intent intent = new Intent(this,SecondActivity.class) ;        String message = et_msg.getText().toString() ;        intent.putExtra("msg",message) ;        //设置请求码        int requestCode = 1 ;        startActivityForResult(intent,requestCode);    }
     //在回调方法中得到结果    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        //判断 code        if (requestCode == 1 && resultCode == 2) {            String result = data.getStringExtra("RESULT") ;            et_msg.setText(result);        }    }
Activity2 : 修改 EditText 的值,返回后回传结果

//带回调的返回    public void back2(View view) {        //设置结果码        int resultCode = 2;        Intent data = new Intent() ;        String result = et_msg2.getText().toString() ;        data.putExtra("RESULT",result) ;        //设置结果        setResult(resultCode,data);        finish();    }



当跨应用使用隐式 Intent 进行传递数据时,使用带 action 的构造方法。

例如 : 

Intent intent = new Intent(Intent.ACTION_DIAL) ;


传入数据时,使用setData() 方法,当有多个参数时,用 putExtra() 传递。

例如 : 以与短信进行交互时,通过该 Activity 给短信应用传入相应值 : 

//传入联系人号码intent.setData(Uri.parse("smsto:" + number)) ;//传入短信内容intent.putExtra("sms_body",sms) ;














0 0
原创粉丝点击