【问题标题】:Button to go back to the previous page返回上一页的按钮
【发布时间】:2013-04-12 19:44:59
【问题描述】:

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

        });

【问题讨论】:

  • 只需使用finish();在点击中。
  • 我把方法“cancelAction”放在了onClick中,然后在我的课堂上我写了public void cancelAction(View v){ finish(); } ...效果很好。

标签: android button back


【解决方案1】:

要返回上一个活动,请使用finish() 方法。但请注意,在您调用当前活动时,以前的活动不包含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);
}

【讨论】:

  • 还有一个小问题就是如何设置pages和pages之间的翻译?
  • 翻译是什么意思?
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    你可以只调用一个finish()到当前活动,它应该回到前一个。

    欲了解更多信息,请参阅javadoc

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

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

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

        【讨论】:

          【解决方案6】:
          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
                      }
          
                  });
          

          【讨论】:

            【解决方案7】:

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

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

            【讨论】:

              猜你喜欢
              • 2018-12-19
              • 2011-04-03
              • 2017-06-05
              • 2016-10-07
              • 2020-11-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多