按钮返回上一页

时间:2013-04-19 12:04:16

标签: android button back

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

        });

7 个答案:

答案 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();
        }

    });