簡體   English   中英

在Android中按下按鈕時觸發后退按鈕功能

[英]Trigger back-button functionality on button click in Android

我知道我們在android中有后退按鈕可以將我們移回到上一個表單上,但是我的團隊負責人要求在按鈕上單擊后退按鈕功能

我怎樣才能做到這一點?

當用戶單擊按鈕以轉到上一個活動時,您應該使用finish()

Button backButton = (Button)this.findViewById(R.id.back);
backButton.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View v) {
    finish();
  }
});

或者,如果您真的需要,可以嘗試觸發自己的后退按鍵:

this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));

執行這兩個。

如果您需要自定義按鈕中后退按鈕的確切功能,為什么不以這種方式調用yourActivity.onBackPressed() ,如果您覆蓋后退按鈕的功能,您的自定義按鈕將表現相同。

public boolean onKeyDown(int keyCode, KeyEvent event) {
             if (keyCode == KeyEvent.KEYCODE_BACK) {
                     // your code here
                     return false;
             }
         return super.onKeyDown(keyCode, event);
     }

layout.xml

<Button
    android:id="@+id/buttonBack"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="finishActivity"
    android:text="Back" />

Activity.java

public void finishActivity(View v){
    finish();
}

有關:

如果你在片段中,那么你在你的點擊監聽器里面寫下面的代碼行, getActivity().onBackPressed(); 這對我很有用。

那么@sahhhm的答案對我不起作用,我需要的是從自定義按鈕觸發backKey所以我所做的就是我簡單地調用,

backAction.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MyRides.super.onBackPressed();

            }
});

它就像魅力一樣有效。 希望它也能幫助別人。

使用此代碼我解決了我的問題。對於后退按鈕粘貼這兩行代碼。希望這會對你有所幫助。

僅在按鈕單擊時粘貼此代碼

super.onBackPressed();

例:-

Button backButton = (Button)this.findViewById(R.id.back);
backButton.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View v) {
    super.onBackPressed();
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM