Android中的Intent例項講解
阿新 • • 發佈:2018-11-02
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);
}
}