我有两项活动-A和活动-B,我使用Intent将Act-A的值传递给Act B.一切都很好。当我打开我的Act-B时,我从Act-A获得价值,现在问题是当点击后退按钮(两次)然后我才得到我的Act-A。当我按下一次相同的活动时,它不会导航我 法-A
法-A:
btn_add_city.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Launching Add_City Screen
Intent i = new Intent(getApplicationContext(),
Acti-B.class);
startActivity(i);
passmyValue();
}
});
public void passmyValue(){
intent = new Intent(getApplicationContext(),Act-B.class);
intent.putExtra("name", receive.getText().toString());
startActivity(intent);
}
法-B:
receive = (TextView)findViewById(R.id.userHidden);
receive.setText(getIntent().getStringExtra("name"));
答案 0 :(得分:2)
所以我认为你必须能够和ANDROID INTENTS一起玩。这可能是Similar Question to you。我希望它可以帮助你,如果没有,请随时回复。 :):)
答案 1 :(得分:1)
您的问题出现在以下代码段中:
// Launching Add_City Screen
Intent i = new Intent(getApplicationContext(), Acti-B.class);
startActivity(i);
passmyValue();
你开始活动B两次,第一次没有任何额外内容,第二次在passmyValue()
内。
作为您的Activit-B,我认为,使用默认启动模式,然后您有2个Activity-B实例。所以你的后台堆栈看起来像:Activity-A - >活动-B - >活动-B。因此,您需要按两次返回活动A。
只需删除这些行:
Intent i = new Intent(getApplicationContext(), Acti-B.class);
startActivity(i);
答案 2 :(得分:1)
在这段代码中:
@Override
public void onClick(View view) {
// Launching Add_City Screen
Intent i = new Intent(getApplicationContext(),
Acti-B.class);
startActivity(i);
passmyValue();
}
删除第一个意图因为您重新启动活动两次。这反过来意味着您的活动B在没有额外意图的情况下启动一次,并且最重要的是它。按后退关闭第一个,再次关闭第二个实例。只需删除行并启动B活动,如下所示:
@Override
public void onClick(View view) {
passmyValue();
}
答案 3 :(得分:1)
在onClick()中,您将通过
启动活动-BIntent i = new Intent(getApplicationContext(),
Acti-B.class);
startActivity(i);
并且您再次在PassMyValue方法中调用startActivity(intent)
,其中 意图 与 i 相同。所以你开始活动B 2次。
你需要通过删除
Intent i = new Intent(getApplicationContext(),
Acti-B.class);
startActivity(i);
答案 4 :(得分:0)
您只需要新的两个意图并启动两个活动,即Activity-B和Activity-B。实际上你在任务堆栈中有三个活动,它们是Act-A,Act-B,Act-B。
没有必要两次开始相同的活动。尝试以下代码,我认为这有帮助。
btn_add_city.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Launching Add_City Screen
// It's no need to start the same activity for twice
passmyValue();
}
});
public void passmyValue(){
intent = new Intent(getApplicationContext(),Act-B.class);
intent.putExtra("name", receive.getText().toString());
startActivity(intent);
}