版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunshunli/article/details/83385747
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);
}
}