Intent意图

1、显式Intent

 button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(FirstActivity.this,SecondActivity.class);  
                startActivity(intent);
            }
        });

2、隐式Intent

  指定一系列的action和category.每个intent中只能指定一个action,可以指定多个category。

  在AndroidManifest中添加

        <activity android:name=".SecondActivity" >
            <intent-filter>
                <action android:name="com.example.activitytest.ACTION_START"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>

  调用addCategory()添加category。

  隐式intent其他用法:

  解析Uri

 button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse("http://www.baidu.com"));
                startActivity(intent);
            }
        });

  <data>标签:用于指定当前活动相应说明类型的数据。

3、传递数据

(1)向下一个活动传递数据

  FirstActivity

 public void onClick(View view) {
                String data = "Hello World";
                Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
                intent.putExtra("extra_data",data);
                startActivity(intent);
            }

  secondActivity

     Intent intent = getIntent();    //获得启动secondActivity的intent
        String data = intent.getStringExtra("extra_data");
        Log.d("SecondActivity",data);

(2)返回数据给上一个活动

  FirstActivity通过startActivityForResult()方法启动SecondActivity,在SecondActivity被销毁之后会回调上一个活动的OnActivityResult()方法,所以需要在FirstActivity中重写此方法。

  如果是通过back键返回FirstActivity,则重写onBackPressed()方法取得返回的数据。

  

 

 

 

 

 

 

 

 

 

  

posted @ 2016-11-08 16:24  yl007  阅读(176)  评论(0编辑  收藏  举报