设为首页 加入收藏

TOP

Android入门(二)Activity-Toast、Intent(四)
2017-10-12 18:05:10 】 浏览:1568
Tags:Android 入门 Activity-Toast Intent
Intent中还可能带有的 category。只有<action>和<category>中的内容同时能够匹配上 Intent中指定的 action和 category时,这个活动才能响应该 Intent。修改 FirstActivity中按钮的点击事件,代码如下所示:

button1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent("com.example.activitytest.ACTION_START");
        startActivity(intent);
    }
});

    可以看到,我们使用了 Intent的另一个构造函数,直接将 action的字符串传了进去,表明我们想要启动能够响应 com.example.activitytest.ACTION_START这个 action的活动。那前面不是说要<action>和<category>同时匹配上才能响应的吗?怎么没看到哪里有指定category 呢?这是因为 android.intent.category.DEFAULT 是一种默认的 category,在调用startActivity()方法的时候会自动将这个 category添加到 Intent中。重新运行程序,在 FirstActivity的界面点击一下按钮,同样成功启动 SecondActivity了。

 

    3、使用Intent传递数据

    Intent还可以在启动活动的时候传递数据的,我们来一起看一下。在启动活动时传递数据的思路很简单,Intent中提供了一系列 putExtra()方法的重载,可以把我们想要传递的数据暂存在 Intent中,启动了另一个活动后,只需要把这些数据再从Intent中取出就可以了。比如说 FirstActivity中有一个字符串,现在想把这个字符串传递到SecondActivity中,你就可以这样编写:

button1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        String data = "Hello SecondActivity";
        Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
        intent.putExtra("extra_data", data);
        startActivity(intent);
    }
});

    这里我们还是使用显式 Intent的方式来启动 SecondActivity,并通过 putExtra()方法传递了一个字符串。注意这里putExtra()方法接收两个参数,第一个参数是键,用于后面从 Intent中取值,第二个参数才是真正要传递的数据。然后我们在 SecondActivity中将传递的数据取出,并打印出来,代码如下所示:

public class SecondActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.second_layout);
        Intent intent = getIntent();
        String data = intent.getStringExtra("extra_data");
        Log.d("SecondActivity", data);
    }
}

    首先可以通过 getIntent()方法获取到用于启动 SecondActivity 的 Intent,然后调用getStringExtra()方法,传入相应的键值,就可以得到传递的数据了。这里由于我们传递的是字符串,所以使用 getStringExtra()方法来获取传递的数据,如果传递的是整型数据,则使用

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇1. 从系统架构到Hello World 下一篇Android入门(九)文件存储与Shared..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目