[英]Androids back button doesnt work
我正在制作我的第一个android应用程序,当我按下“后退”按钮时,它关闭了该应用程序,而不是返回上一个活动。 有谁知道我该如何解决?
谢谢
这是我的“ Hoofdscherm”页面,从这里可以转到“ Acties”页面
package com.WNF;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
public class Hoofdscherm extends Activity {
// aanroepen van een bundle, kan je elke naam geven die je maar wilt,
//zolang de bundle als de onCreate maar dezelfde naam hebben
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// de setContentView is niets meer dan de gegevens van de
//View ophalen uit de R.layout.naamvandeXML
// Onthoud goed dat je dezelfde XMLs voor meerdere pagina's
//kan gebruiken.
setContentView(R.layout.hoofdscherm);
Button b = (Button) findViewById(R.id.button1);
ImageButton i = (ImageButton) findViewById(R.id.imageButton1);
b.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Intent in = new Intent(Hoofdscherm.this,Acties.class);
startActivity(in);
finish(); //deze activity wordt gestopt
}
});
i.setOnClickListener(new OnClickListener(){
public void onClick(View g){
Intent ib = new Intent(Hoofdscherm.this,Acties.class);
startActivity(ib);
finish();
}
});
}
}
这是“ Acties”页面
package com.WNF;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
public class Acties extends Activity{
// aanroepen van een bundle, kan je elke naam geven die je maar wilt,
//zolang de bundle als de onCreate maar dezelfde naam hebben
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// de setContentView is niets meer dan de gegevens van de
//View ophalen uit de R.layout.naamvandeXML
// Onthoud goed dat je dezelfde XMLs voor meerdere pagina's
//kan gebruiken.
setContentView(R.layout.acties1);
getIntent();
}
}
您可以通过覆盖活动中的onKeyDown方法并使用简单的if语句来查找所按下的键是否为后退键,从而覆盖按钮的行为
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
// your code here
return true;
else return false
return super.onKeyDown(keyCode, event);
}
然后在语句中编写代码,以调用您的其他活动。
编辑我看到您添加了代码,在调用第二个活动后调用了finish(),这将终止您的第一个活动,或者删除finish()或通过第二个活动中的意图召唤第一个活动。
这是您的解决方案
删除finish()
方法。
b.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Intent in = new Intent(Hoofdscherm.this,Acties.class);
startActivity(in);
finish(); // Remove this..and it will work as you want it to
}
});
finish() method avoids storing of the activity on the Back Stack
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.