我是android的新手..
版本[2.2]
我创建了一个主要活动[A],点击一个按钮就转到另一个活动[B]( “这个活动有透明背景所以主要活动[A]也可以查看”必需的必修课 )。
一旦我从活动[B]点击后退按钮,它应该转到活动[A](或)活动[B]有一些按钮,如果我点击活动[B]中的任何按钮它应该转到活动[C] 。
从活动[C]点击后退按钮活动[A]是实时的。
对我来说,从活动[C]点击后退按钮时我的应用应该是完成()......
请帮助我。
答案 0 :(得分:0)
在活动[c] 中输入此代码 -
@Override
public void onBackPressed() {
Intent intent = new Intent(this, activity[c].class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
}
并在活动[c] 的onCreate
方法中输入此代码 -
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
答案 1 :(得分:0)
每当你调用意图时,都要使用此代码来杀死之前的活动
Intent i=new Intent(activity[a].this,activity[b].class);
startActivity(i);
activity[a].this.finish();
此代码有助于清除所有活动示例:其明确活动[a]和活动[b]
Intent i = new Intent(activity[c].this,activity[a].class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
答案 2 :(得分:0)
创建活动A后,您必须创建活动A的实例。 例如。 static A instanceA = this; 现在创建一个静态方法getInstace()
public static A getInstance(){
return instanceA;
}
enter code here
Now in Activity B on setonclicklistener
write A.getInstance().finish(); //For Activity A
并且还完成()//对于活动B
答案 3 :(得分:0)
您好,请逐一进行以下更改。要实现这一切,应该使用startActivityForResult而不是startActivity来开始。
启动活动A到B时,您应使用以下代码。
startActivityForResult(new Intent(ActivityA.this,ActivityB.class),12);
启动活动B至c时,您应使用以下代码。
startActivityForResult(new Intent(ActivityB.this,ActivityC.class),12);
在All Three Activity中添加以下方法。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==12){
setResult(12);
this.finish();
}
}
完成任何活动后添加代码。 (如果单击活动A或B或C中的完成按钮),则在按钮完成的onClick下方添加。
setResult(12);
ClassName.this.finish();
不要使用onBackPressed和startActivity。这是处理这个问题的简单方法。