package com.example.tyxiong.myapplication;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.app.ListFragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import java.util.ArrayList;
/*
* Intent
* 为启动组件(Activity,Service,BroadcastReceiver)提供了统一的编程接口模型.
* Intent是各组件之间通信的媒介.
*
* 7个属性:Component Action Category Data Type Extra Flag
*
* Component:代表Intent显示要启动的组件. 取值:接受ComponentName对象 new ComponentName(Context,Class<?>)显示Intent
* 用它启动分4步:
* 1 new ComponentName()
* 2 Intent
* 3 Intent设置Component属性值.
* 4 启动组件
*
* 隐式Intent
* Action:表示Intent的抽象动作. Category:表示Action的额外信息.
*
* 一个Intent只能设置一个Action属性值.,只能启动一个组件; Intent.setAction(); 不设category则(Category有默认属性.)
* intent--filter设置多个action category属性,能响应多个Intent.
*
*xml中 intent-filter用户配置能匹配的属性值, 若Action属性与Intent相符,则会被启动. 会有默认的Category值.
*
*同样的Intent设置了指定的Action,Category参数值,也能启动系统Activity(开启权限...)
*
* Data:表示Action动作操作的数据(接受一个Uri对象). Type:表示Data的MIME属性(形如xyz/abc)
* Data Type在intent-filter下以data元素值,配置属性7属性 mimetype scheme host port path pathPre pathPattern
*mimetype需要完全匹配; Data只需要有部且匹配,就能被Intent启动(只指定了path,不会启动.)
*
*
* Extra属性 常用于在多个Activity间数据交换.
*
*Flag属性: 为Intent添加的控制旗标,可控制被启动的Activity的加载模式.调用addFlags()可设置值 7个 2 toFront/3/no-animation no-history不入栈
* */
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void go(View view) {
Intent intent = new Intent();
intent.setAction("SecondActivity");
startActivity(intent);
}
}
package com.example.tyxiong.myapplication;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
/*
*Intent 启动的组件可直接作为TabHost(选项卡)的标签页.
* 4步.1 继承TabActivity类,重写onCreate()方法
* 2 调用getTabHost()获得选项卡对象.
* 3 创建标签页 setIndicator()设置标题 图标 setContent()直接将Intent启动的组件设为标签页内容.
* */
public class MainActivity extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();
TabHost.TabSpec tabSpec1 = tabHost.newTabSpec("tab1").setIndicator("第一页", getResources()
.getDrawable(R.drawable.icon1)).setContent(new Intent(this, SecondActivity.class));
TabHost.TabSpec tabSpec2 = tabHost.newTabSpec("tab1").setIndicator("第二页", getResources()
.getDrawable(R.drawable.icon2)).setContent(new Intent(this, FirstActivity.class));
tabHost.addTab(tabSpec1);
tabHost.addTab(tabSpec2);
}
}
Intent概述 Intent启动的组件设为标签页内容
最新推荐文章于 2022-11-26 21:43:13 发布