我想制作一个按钮,允许用户在点击时返回上一页。就像Android设备上的物理后退按钮一样工作。我应该在java文件中添加什么内容?
这是代码(xml):
<Button
android:id="@+id/button00"
android:layout_width="80dp"
android:layout_height="40dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_marginLeft="10dp"
android:text="@string/st_pp"
android:textColor="#01646d"
android:background="#fef200"/>
这是代码(java):
bn00.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent it1 = new Intent(getApplicationContext(), Main.class);
startActivity(it1);
}
});
答案 0 :(得分:9)
要使用finish()
方法返回上一个活动。但请注意,当您调用当前活动时,之前的活动不包含finish()
。
代码:
bn00.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
finish();
}
});
使用上面的代码,您可以转到上一个活动。您也可以在finish()
方法中调用onKeyDown()
,如..
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
答案 1 :(得分:1)
您想要的是在当前finish()
上使用Activity
。它将从堆栈中删除当前Activity
,显示前一个,因此它将作为后退按钮。
bn00.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
finish();
}
});
答案 2 :(得分:1)
你可以在当前活动中调用finish(),它应该返回到前一个活动。
有关详细信息,请参阅javadoc
答案 3 :(得分:1)
finish();
方法将结束当前活动并显示之前的活动。
但onBackPressed();
方法会按后退按钮。但是默认实现(没有覆盖)无论如何都会调用finish();
方法。
答案 4 :(得分:0)
bn00.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//Intent it1 = new Intent(getApplicationContext(), Main.class);
//startActivity(it1);
finish(); //just add this
}
});
答案 5 :(得分:0)
Android有一个硬件后退按钮来完成这项工作。所以我建议不要有一个相同的按钮。按下硬件后退按钮时,后备堆栈中的当前活动将被弹出,销毁,并且后堆栈中的先前活动将获得焦点。
您点击按钮点击完成(),如下所示
bn00.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
finish();
}
});
答案 6 :(得分:0)
而不是“bn00”在您的代码中写入“button00”,因为您已在xml中将“button00”设置为按钮ID。
正如其他人所说的那样,在finish()
方法中调用onClick()
。这将结束您当前的活动并加载您之前尚未完成的活动。
buttonn00.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
finish();
}
});