android 按钮返回上一页

x4shl7ld  于 2023-04-10  发布在  Android
关注(0)|答案(8)|浏览(315)

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

        });
ffdz8vbo

ffdz8vbo1#

使用finish()方法返回到上一个Activity。但请注意,在调用当前Activity时,上一个Activity不包含finish()
验证码:

bn00.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {

                finish();
            }

        });

使用上面的代码,你可以转到你以前的活动。你也可以在onKeyDown()方法中调用finish(),如..

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
       finish();
        return true;
    }

    return super.onKeyDown(keyCode, event);
}
bejyjqdl

bejyjqdl2#

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

bn00.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View arg0) {
        finish();
    }
});
mlmc2os5

mlmc2os53#

你可以只调用一个finish()到当前的activity,它应该返回到前一个。
有关更多信息,请参见javadoc

31moq8wy

31moq8wy4#

finish();方法将结束当前Activity并显示前一个Activity。
但是onBackPressed();方法将按下返回按钮。但是默认实现(没有Override)将调用finish();方法。

jk9hmnmh

jk9hmnmh5#

Android有一个硬件返回按钮来完成这项工作。所以我建议不要有一个按钮来做同样的事情。当硬件返回按钮被按下时,返回堆栈中的当前Activity被弹出,销毁,返回堆栈中的前一个Activity获得焦点。
单击按钮时调用finish(),如下所示

bn00.setOnClickListener(new OnClickListener(){

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

    });
mutmk8jj

mutmk8jj6#

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
            }

        });
amrnrhlw

amrnrhlw7#

在你的代码中写“button00”而不是“bn00”,因为你已经在xml中设置了“button00”作为你的按钮id。正如其他人所说的,在onClick()方法中调用finish()。这将结束你当前的Activity并加载尚未完成的前一个Activity。

buttonn00.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View arg0) {

            finish();
        }

    });
r6vfmomb

r6vfmomb8#

在Kotlin中,你只需要
btn.setOnClickListener { finish()}

相关问题