android(活动与意图)-5

    活动的应用,一般就是创建一个layout的xml文件,然后再创建一个活动程序的.java的活动类,最后在mainifests里去注册这个活动。

    前面那些东西莫名的启动了活动,但活动好像都有意图(Intent)有关,我突然发现前面好像没出再过Intent这玩意。

    用这个把页面与活动联系起来:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
   活动是继承的

public class MainActivity extends AppCompatActivity{}
  最后是活动的注册,好在这里发现了intent这个东西,哈哈哈。

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter></activity>

如果我注册一个新的活动大概也就是这个样加一条

<activity android:name=".NewActivity">
</activity>
 

基本这是这样

再说下intent:分为显式和隐式两种,它有多个构造的重载其中一个就是Intent(Context packageContext, Class<?>cls).

所以如果、要在一个活动是启动另一个活动可以拿这样使用,实现活动间的切换,也就是手机页面问的转换,这就是显示的搞法。

Button button = (Button)findViewById(R.id.button_test);
button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, SecondActvity.class);
        startActivity(intent);
    }
});


还有一种隐式的搞法就是在去配<intent-filer>的内容从而让系统分析出那个活动该启动

这种搞法是Intent的另一种构造方式,这样写一个不好就崩了,它需要配置好<category>这个属性如果发现崩了就看log是不是提示没有可响应的活动,就可能是活动中的与注册的对应不上。

活动中是这样:

Button button = (Button)findViewById(R.id.button_test);
button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent("com.ouyang.myapplication.ACTION_START");
        intent.addCategory("com.ouyang.myapplication.MY_CATEGORY");
        startActivity(intent);
    }
});

注册就要这样子:

<intent-filter>
    <action android:name="com.ouyang.myapplication.ACTION_START" />
    <category android:name="com.ouyang.myapplication.category.DEFAULT" />
    <category android:name="com.ouyang.myapplication.MY_CATEGORY" />
</intent-filter>
这样一一对应我想应该不会出错了吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值