Android:如何检查哪个Fragment / Activity调用该方法

时间:2017-08-14 15:58:21

标签: android android-studio android-fragments

我的情况如下,我在活动片段之间有一个常用工具栏,我有一个方法附加到这个工具栏(如一个可以被所有人调用的后退按钮,但是,我希望这个方法根据调用它的activity / fragment来表现不同。那么我的代码在这个方法中应该是什么样的?

这是我的代码

 public boolean onSupportNavigateUp(){
    Intent mainActivity=new Intent(this,main_activity.class);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(mainActivity);
    this.finish();
    return true;
}

4 个答案:

答案 0 :(得分:0)

使用意图使用putExtra和getExtra,并为put中的不同活动设置不同的值以识别确切的调用活动/片段。

答案 1 :(得分:0)

您可以在意图中添加额外内容,然后检查它以了解发送者的身份。类似的东西:

活动1

Intent intent = ...
intent.putExtra("SENDER","activity1");
startActivity(intent);

接收意图的活动

Intent intent = getIntent();
String sender = intent.getExtras().getString("SENDER");
if(sender=="activity1")
//do

希望它有所帮助!

答案 2 :(得分:0)

另一种方法是使用反射:

if (getClass() == Activity1.class){
  // Do something
}

答案 3 :(得分:0)

为什么不使用工具栏和framelayout进行1次常见活动并切换这样的片段。编写的代码较少。这也减少了代码冗余。或者我不明白你在问什么?