找到调用intent / activity的按钮的id? Android的

时间:2012-01-12 22:36:14

标签: android button android-activity android-intent bundle

我的主要活动布局包含10个不同的按钮,它们都调用相同的活动(MapsActivity)。

如何找出从MapsActivity按下的按钮的ID?我尝试使用

发送它
  

intent.putExtra(“id”,id);

但是当按下任何一个按钮时,这个id也是一样的。

我是否需要为每个调用相同活动的按钮创建单独的意图?或者我可以使用1个intent并只更改它传递给MapsActivity的值吗?

我希望我已经清楚地解释了这个问题!谢谢!

1 个答案:

答案 0 :(得分:2)

你说你用findViewById将监听器添加到你代码中的按钮,所以我假设你的要求意味着你无法在xml中设计你的布局。因此,当您设置第一个活动时,保存所有这些按钮的活动,确保它们都获得相同的点击监听器。我们可以调用这个监听器方法mapsButtonListener。它应该这样声明:

public void mapsButtonListener(View sender) {
    int id = sender.getId();
    Intent mapsActivity = new Intent(getApplicationContext(), MapsActivity.class);
    mapsActivity.putExtra("button_id", id);
    startActivity(mapsActivity);
}

关于我们按钮的ID:s

如果您使用xml设计放置按钮,那么只需确保它们在xml中声明了id:s。但是,如果你使用xml这些,而是​​在代码中实例化它们,那么你将不得不使用方法setId(4)给你的按钮id:s(don显然,给他们所有人4,呵呵)。这应该在添加点击监听器的同时完成。此外,请确保您知道哪个按钮获得了什么号码,以便稍后查看。

在MapsActivity中获取ID

一旦mapsActiviy启动,我们就会想要那个id。我们使用以下行(在MapsActivity类中)执行此操作:

 int id = getIntent().getIntExtra("button_id");