我的应用中有3个活动。
MainActivity
,SecondActivity
和ThirdAtivity
。 MainActivity
和ThirdActivity
都有按钮,每个按钮都指向SecondActivity
。我希望仅在用户从SecondActivity
移动到该活动时启动MainActivity
时执行一些代码,而不是从ThirdAtivity
移动时执行。
怎么做?
答案 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
}