仅在活动中执行代码调用来自一系列调用活动中的特定活动

时间:2016-09-01 13:09:38

标签: android button android-activity

我的应用中有3个活动。

MainActivitySecondActivityThirdAtivityMainActivityThirdActivity都有按钮,每个按钮都指向SecondActivity。我希望仅在用户从SecondActivity移动到该活动时启动MainActivity时执行一些代码,而不是从ThirdAtivity移动时执行。

怎么做?

5 个答案:

答案 0 :(得分:2)

将此代码放入FirstActivity.java

Intent intent = new Intent(getApplictionContect, SecondActivity.class);
                intent.putExtra("code", 1);
                startActivity(intent);

在您的ThirdActvity.java

  Intent intent = new Intent(getApplictionContect, SecondActivity.class);
                intent.putExtra("code", 2);
                startActivity(intent);

在SecondActivity.java中

  Intent intent = getIntent();
    int code = intent.getIntExtra("code", 0);

 if(code == 1)
 { 
    // Your code
 }
 else
 {
 }

答案 1 :(得分:1)

使用Intents。这样的事情。

class Activity1
Intent intent = new Intent(this, YourSecondActivity.class);
intent.putExtra("who","Activity1");
startActivity(intent);

class Activity3
Intent intent = new Intent(this, YourSecondActivity.class);
intent.putExtra("who","Activity3");
startActivity(intent);

class Activity2
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent intent = getIntent();
        String whoCalledMe = intent.getStringExtra("who");
    }

答案 2 :(得分:0)

将该代码写入onCreate()

SecondActivity.java

修改 我没有意识到你可以将ThirdActivity作为你的主要启动器活动。在这种情况下,只需传递一些其他人建议的旗帜。喜欢这个

MainActivity.java

startActivity(new Intent(MainActivity.this, SecondActivity.class).putExtra("flag", 1));

在ThirdActivty.java

startActivity(new Intent(ThirdActivity.this, SecondActivity.class).putExtra("flag", 3));

在SecondActivity.java 中 在onCreate():

int flag = getIntent().getIntExtra("flag", -1);
//if flag is 1 coming from MainActivity, if 3 coming from third activity

答案 3 :(得分:0)

使用Bundles在从第一个活动(例如

)启动SecondActivity时设置键值对
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("passed_from", "one");
startActivity(intent);

SecondActivity

Bundle b = new Bundle();
b = getIntent().getExtras();
String passed_from= b.getString("passed_from");

如果pass_from等于"一个"而不是运行代码

答案 4 :(得分:0)

在第一个活动按钮中点击:

Intent i=new Intent(First.this,Second.class);
i.putExtra("from","first");
startActivity(i);

在第三个活动按钮中点击:

Intent i=new Intent(Third.this,Second.class);
i.putExtra("from","third");
startActivity(i);

在第二个活动中收到意图并检查来自哪里(点击了哪个活动按钮),然后相应地编写代码:

<强> SecondActivity.java

  String from=getIntent().getExtras().getString("from");
    if(from.equals("first"))
    {
       //Button of first activity is clicked
      //Execute your code
    }