1

我想制作一个按钮,允许用户在单击时返回上一页。就像 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);
            }

        });
4

7 回答 7

11

回到以前的活动使用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);
}
于 2013-04-19T12:08:57.143 回答
1

你想要的是finish()在你当前的Activity. 它将Activity从堆栈中删除当前,显示前一个,因此它将用作后退按钮。

bn00.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View arg0) {
        finish();
    }
});
于 2013-04-19T12:06:39.663 回答
1

您可以只调用当前活动的完成(),它应该回到上一个活动。

有关更多信息,请参阅javadoc

于 2013-04-19T12:07:06.247 回答
1

finish();方法将结束当前活动并显示上一个活动。

但是该onBackPressed();方法将按下后退按钮。但是默认实现(没有 Override)finish();无论如何都会调用该方法。

于 2013-04-19T12:16:07.723 回答
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
            }

        });
于 2013-04-19T12:05:57.973 回答
0

而不是“bn00”在您的代码中写“button00”,因为您已将“button00”设置为您的 xml 中的按钮 ID。正如其他人所说,调用finish()内部onClick()方法。这将结束您当前的活动并加载您之前尚未完成的活动。

buttonn00.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View arg0) {

            finish();
        }

    });
于 2013-04-19T13:29:00.977 回答
0

Android有一个硬件后退按钮可以完成这项工作。所以我建议不要有一个做同样的按钮。当按下硬件后退按钮时,后退堆栈中的当前活动被弹出、销毁,并且后退堆栈中的前一个活动获得焦点。

您在单击按钮时调用finish(),如下所示

  bn00.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View arg0) {
           finish();
        }

    });
于 2013-04-19T12:07:32.453 回答