1. 程式人生 > >Android中的Intent例項講解

Android中的Intent例項講解

Intent 是由動作,資料,分類,元件和擴充套件資訊等組成。

組成 屬性 設定屬性的方法 獲取屬性的方法
動作 Action setAction() getAction()
資料 Data setData()

getData()

分類 Catagory addCatagory() null
元件 Component

setComponent()

setClass()

setClassName()

getComponent()
擴充套件資訊 Extra putExtra() getXXXExtra(),XXX代表的是型別,int,char等
       

Intent是意圖,主要的作用是利用訊息實現應用程式的互動。

Intent包括兩種啟動的方式,一種是隱式的啟動,一種是顯示的啟動。

下面是我們的例項

這個是我們的FirstActivity

package com.example.sunshunli.menutest;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class FirstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn1 = (Button)findViewById(R.id.btn1);
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//              Toast.makeText(FirstActivity.this, "You clicked the button", Toast.LENGTH_SHORT).show();
//顯示啟動Intent
//兩種方法都可以。
//              Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
//                Intent intent = new Intent();
//                intent.setClass(FirstActivity.this,SecondActivity.class);
//                startActivity(intent);
////////////////
//隱士啟動Intent
//              Intent intent = new Intent("com.example.sunshunli.menutest.ACTION_START");
//                Intent intent = new Intent();
//                intent.setAction("com.example.sunshunli.menutest.ACTION_START");
//                intent.addCategory("com.example.sunshunli.menutest.My_category");
//                startActivity(intent);
//                Intent intent = new Intent(Intent.ACTION_VIEW);
//                intent.setData(Uri.parse("http://www.baidu.com"));
//                startActivity(intent);
                String data = "Hello SecondActivity";
                Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
                intent.putExtra("extra_data",data);
                startActivity(intent);


// finish();銷燬活動
            }
        });

    }
    //當用戶點選Menu按鈕的時候會呼叫這個方法。
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.main,menu);
        return true;
    }
    //當用戶點選Menu的選項的時候會呼叫這個方法
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.add_item:
                Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
                break;
            case R.id.remove_item:
                Toast.makeText(this, "You clicked remove", Toast.LENGTH_SHORT).show();
                break;
            default:
        }
        return true;
    }
}

這個是我們的SecongActivity

package com.example.sunshunli.menutest;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;


public class SecondActivity extends AppCompatActivity {
    private static final String TAG="SecondActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        Intent intent = getIntent();
        String data = intent.getStringExtra("extra_data");
        Log.d(TAG, data);
    }
}